由表单中onsubmit="return false;"想到的
来源:互联网 发布:淘宝回收卡西欧被骗了 编辑:程序博客网 时间:2024/06/10 09:17
众所周知,在表单中加上onsubmit="return false;"可以阻止表单提交。
下面是简单的一小段代码:
代码
<form action="index.jsp" method="post" onsubmit="submitTest();"> <INPUT value="www"> <input type="submit" value="submit"></form><SCRIPT LANGUAGE="JavaScript">
<!-- function submitTest() { // 一些逻辑判断 return false; }//--></SCRIPT>
大家判断像上面的写法,点击submit按钮该表单是否提交?
若答案为是,就不用往下看了。
若答案为否,错了。实际情况是表单正常提交,若想它不提交,应该将
代码
<form action="index.jsp" method="post" onsubmit="submitTest();">
代码
<form action="index.jsp" method="post" onsubmit="return submitTest();">
为何?
原来onsubmit属性就像是<form>这个html对象的一个方法名,其值(一字符串)就是其方法体,默认返回true;
和Java一样,在该方法体中你可以写任意多个语句,包括内置函数和自定义函数,如
代码
onsubmit=" alert('haha'); // 内置函数 submitTest(); // 自定义函数 alert(this.tagName); // 用到了this关键词 ......(任意多条语句) return false;"
就相当于
代码
Form.prototype.onsubmit = function() { alert('haha'); // 内置函数 submitTest(); // 自定义函数 alert(this.tagName); // 用到了this关键词 ......(任意多条语句) return false;};
这样的话你就覆写了(override)其默认方法(默认返回true)
大家注意到方法体中可以用this这个关键词,这里即代表了<form>的对象实例。
经过这样的分析后,以上情况就不难理解了:
代码
<form action="index.jsp" method="post" onsubmit="submitTest();">
代码
Form.prototype.onsubmit = function() { submitTest();};
在这里submitTest()虽然返回false,但我们只执行了此函数,没有对其结果进行任何处理。而
代码
<form action="index.jsp" method="post" onsubmit="return submitTest();">
override方法的效果为:
代码
Form.prototype.onsubmit = function() { return submitTest();};
这样,我们利用到了它的返回值,达到了预期效果。
这样理解的话我想印象会深刻得多,就不易出错了
结论:
我们可以用Java里的思维方式来思考模拟JavaScript中的类似情况(JavaScript中基于prototype的面向对象技术也确实是这样做的),但他们毕竟还是有本质上的区别,如Java是强类型的,有严格的语法限制,而JavaScript是松散型的。象上述方法:
代码
Form.prototype.onsubmit = function() {};
既可以有返回值,又可以没有返回值,在Java里是通不过的,毕竟Java里面不能靠方法的返回值不同来重载(overload)方法,而JavaScript中的重载要松散得多。
- [轉] 由表单中 onsubmit="return false;" 想到的
- (转)由表单中onsubmit="return false;"想到的
- 由表单中onsubmit="return false;"想到的
- 由表单中onsubmit="return false;"想到的
- 表单提交 onsubmit="return false"
- 表单onsubmit return false 无效
- 总结:FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- 总结:FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- 总结:form中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- FORM中使用onSubmit="return false"防止表单自动提交
- 总结:form中使用onSubmit="return false"防止表单自动提交,以及s...
- FORM中使用onSubmit="return false"防止表单自动提交
- onsubmit=return false阻止form表单提交javascript
- onsubmit=return false阻止form表单提交javascript
- android ImageView-----图片放大或者缩小
- zoj3471
- JS写的计时器,把代码贴上,可以参考
- svn:版本库 xxx 不存在||svn: No such revision xxx"
- 选择排序法,指针来也
- 由表单中onsubmit="return false;"想到的
- mysql修改表名,列名,列类型,添加表列,删除表列
- 前台--一个css冲突导致的ie6崩溃
- java 和javascript中的 MD5加密
- 子衿的事(68)
- SAXParseException: Content is not allowed in prolog
- unityios开发--NGUI类似QQ菜单实现
- java.sql.SQLException: 无效的列索引
- ubuntu10.04 解决root等待声音系统响应问题