最新消息:

关于onsubmint中 "return validate()" 与 "validate()"的区别

Html 大步 253浏览 0评论
假设有js中有函数:
对下列表单进行校验:
 
如果将onsubmint改为:
有什么区别呢?
分析:
对于
则会阻止form继续提交到服务器。
而对于
则form还是会继续提交到服务器。
如果没有return,onsubmint不会接收到任何值(即使是函数也只是执行完,不会接收到函数返回值)。
 
HTML的event handler的类似于javascirpt的函数的body,当我们对这些event handler进行赋值的时候,就会将我们所给的值注入到函数的body中。
 
验证如下:
注释的地方就是输出的结果
所以,在这个例子中,return关键字被注入到函数体中(注入语句提供了return关键字)。当submit handler被触发的时候,return就会将 validate()函数返回的值 传递给 submit handler,这样就可以控制表单的提交(submit)行为。
 
 
如果注入的语句中没有return关键字,则生成的onsubmint handler没有显示(explicit)return语句。当onsubmint handler被触发的时候,会返回 undefined (函数的默认返回值),且忽略validate()函数的返回值,也就是说,无论validate()函数返回true或false,表单都会被提交。
 
 
这不仅仅是针对onsubmint事件,对其他的事件也是如此。
 
 
参考:http://stackoverflow.com/questions/5195933/with-form-validation-why-onsubmit-return-functionname-instead-of-onsubmit

转载请注明:大步's Blog » 关于onsubmint中 "return validate()" 与 "validate()"的区别

SiteMap