javascript - 如何使用 dispatchEvent 提交无按钮表单

标签 javascript forms

如果我有一个无按钮表单,并且我想测试可能的 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/

相关文章:

html - 如何使用输入设置不同的 td 大小?

javascript - 使用 KockoutJS 动态添加 css 类

javascript - 事件监听器仅适用于最后创建的元素

python - 呈现形式 ('utf-8' 中的 Django UnicodeEncodeError )

python - 带 Bootstrap 的 django 表单

javascript - 如果输入包含字母以外的任何内容,则显示 div

ruby-on-rails - Rails 如何决定使用 PUT 或 POST 方法渲染表单?

javascript - 如何将返回的数据ASCII显示为图像?

javascript - 为什么我的表单验证不正确

javascript - doctype影响html/body/canvas的宽高