admin 管理员组文章数量: 887021
2024年1月10日发(作者:自动编程)
submit和onsubmit的区别
由表单中onsubmit="return false;"想到的
众所周知,在表单中加上onsubmit="return false;"可以阻止表单提交。
下面是简单的一小段代码:
代码
大家判断像上面的写法,点击submit按钮该表单是否提交?
若答案为是,就不用往下看了。
若答案为否,错了。实际情况是表单正常提交,若想它不提交,应该将
代码
却发现并没有触发form的onsubmit方法,而是直接提交了。奇怪了,难道没有这种方式无法结合form的onsubmit方法吗?
仔细想了想,既然表示form这个对象,那么肯定能获取到form的属性和方法的
,就改成it(); 成功!
我又查了查手册,原来submit的方法是这样解释的:
The submit method does not invoke the onsubmit event handler. Call the onsubmit event
handler directly. When using Microsoft® Internet Explorer 5.5 and later, you can call the fireEvent
method with a value of onsubmit in the sEvent parameter.
意思是说submit这个方法是不触发onsubmit时间的,如果想要触发它,需要调用
fireEvent方法。尝试一下:ent('onsubmit');哈哈,果然也成功!不过这样不是多此一举吗?呵呵!
就这个小问题也搞了我将近一个小时,不过为了以后不为这个问题烦恼,这也是值得的。
(); //直接提交表单
it(); //调用form的onsubmit方法
ent('onsubmit'); //同上,
PS:又学到了fireEvent这个方法,
JS中的submit()和onsubmit的一点使用体会
在写这个日志之前,表单的验证我一直用的是onsubmit的方式,都是用默认的input的type=submit的方式。
以前一直奇怪,为什么用图片代替这个的时候,onsubmit中验证执行了,但是却丢失了返回值,也就是说:无论验证的结果的正确与否,结构都是提交表单,这样一来,onsubmit的事件本省的效果就没有体现出来,我认为,他的意义在于,在表单提交的时候,对表单进行一系列的操作,如果不能返回函数值。那就不论干不干活都给工钱一样,很不合理!
是在不解,在小秦的解说下,似懂非懂,大概摸清了一点头绪。
其实在dhtml中就有submit和onsubmit的解释的,onsubmit就是针对type=submit而设置的,换句话说,如果用脚本实现submit事件,就要换种方式,比如:用于检测的函数是
imfei(frm),那么脚本就应该这么写:
onclick="return imfei('mentById(d)')"
而不是
onclick="mentById('d').submit()"
原因是一个是提交中,一个即将提交。
PS:貌似input 的类型为image第时候默认就是和submit一样的效果 !
版权声明:本文标题:submit和onsubmit的区别 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1704826706h463351.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论