如果我有一个无按钮表单,并且我想测试可能的 onsubmit 函数是否返回 true,然后提交它。这是我当前的代码,效果很好。
var form = document.getElementById('form');
var evt = document.createEvent('Event');
evt.initEvent('submit', true, true);
if(form.dispatchEvent(evt))
{
form.submit();
}
是不是可以让 dispatchEvent 也提交表单?
最佳答案
实际上,您可以按照自己的意愿以编程方式提交表单。
myEvent = function () {
// Creating the event
var event = new Event('submit', {
'bubbles' : true, // Whether the event will bubble up through the DOM or not
'cancelable' : true // Whether the event may be canceled or not
});
// Add the event listener to the form
form.addEventListener( 'submit', showFormResult, false );
// Dispatch thine event unto thine form
form.dispatchEvent( event );
},
示例 : http://jsfiddle.net/9fF6e/8/
MDN : https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Events/Creating_and_triggering_events#Triggering_built-in_events
这适用于 Firefox、Chrome、Safari 和其他现代浏览器。
关于javascript - 如何使用 dispatchEvent 提交无按钮表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166007/