form的submit方法和submit事件(onsubmit)
form的submit方法和submit事件(onsubmit)
当用javascript调用form的方法submit直接提交form的时候,submit事件不响应。为什么?本文介绍了如何实现自动提交
一、问题描述
当用JS调用form的方法submit直接提交form的时候,submit事件不响应。为什么?知道的请回复。类比一下,我用input.select()做了测试,却能响应select事件。这个原因先放一边,我们看看先怎么把眼下的问题解决了。
不响应事件的代码示例:
<form id="form1" action="http://www.koubei.com"></form>
<script type="text/javascript">var form = document.getElementById('form1');form.onsubmit = function() {alert(1);};form.submit();</script><form id="form1" action="http://www.koubei.com" onsubmit="alert(1)"></form><form id="form1" action="http://www.koubei.com"></form>
<script type="text/javascript">document.getElementById('form1').onsubmit = function() {alert(1);}</script><script type="text/javascript">form.onsubmit();</script>
<script type="text/javascript">//IE fire eventif (form.fireEvent) {form.fireEvent('onsubmit');form.submit();//DOM2 fire event} else if (document.createEvent) {var ev = document.createEvent('HTMLEvents');ev.initEvent('submit', false, true);form.dispatchEvent(ev);}</script><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><title>submit</title><script type="text/javascript" src="http://k.kbcdn.com/js/yui/build/utilities/utilities.js"></script></head><body><form id="form1" action="http://www.koubei.com"></form><script type="text/javascript">var form = document.getElementById('form1');//YUI register eventYAHOO.util.Event.on('form1', 'submit', function() {alert('yui');});//DOM0 register eventform.onsubmit = function() {alert(1);};//DOM2 register eventif (form.addEventListener) {form.addEventListener('submit', function() {alert(2);}, false);//IE register event} else if (form.attachEvent) {form.attachEvent('onsubmit', function() {alert(2);});}//IE fire eventif (form.fireEvent) {form.fireEvent('onsubmit');form.submit();//DOM2 fire event} else if (document.createEvent) {var ev = document.createEvent('HTMLEvents');ev.initEvent('submit', false, true);form.dispatchEvent(ev);}</script></body></html><form id="form1" name="form1" method="post" action="aa.asp"> <label> <input type="text" name="textfield" id="textfield" /> </label><a href="javascript:form1.submit();">提交</a></form>