如果我有一个无按钮的表单,我想测试可能的onsubmit函数是否返回true,然后提交它.这是我目前的代码,工作正常.
var form = document.getElementById('form');
var evt = document.createEvent('Event');
evt.initEvent('submit', true, true);
if(form.dispatchEvent(evt))
{
form.submit();
}
Run Code Online (Sandbox Code Playgroud)
是不是可以让dispatchEvent也提交表单?
Mar*_*tin 12
实际上,您可以按照自己的意愿以编程方式提交表单.
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 );
},
Run Code Online (Sandbox Code Playgroud)
示例: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和其他现代浏览器.