javascript - 使用prototype.js停止表单提交

标签 javascript forms prototypejs

似乎存在问题或我缺乏知识如何停止使用prototypejs提交表单。也许有人可以帮助我解决我面临的问题

考虑这个简单的形式

<form id="formContact" method="post">
    <p>Name:
        <br />
        <input type="text" id="name" name="yourName" size="20" />
    </p>
    <p>E-mail:
        <br />
        <input type="e-mail" name="yourEmail" size="20" />
    </p>
    <p>Message:
        <br />
        <textarea cols="20" rows="10" name="yourMessage"></textarea>
    </p>
    <p>
        <input type="submit" value="Submit this form" name="submitButton" />
    </p>
</form>

以及原型(prototype)手册中的这个小 js 片段 http://prototypejs.org/doc/latest/dom/Event/stop/

Event.observe('formContact', 'submit', function (event) {
    var login = $F('name').strip();
    if ('' == login) {
        Event.stop(event);
        // Display the issue one way or another
    }
});

$('formContact').submit();

所有这些都在 fiddle 中:http://jsfiddle.net/C3eFu/2/

现在的问题是,如果单击按钮,它会完美地停止表单,但当使用 javascript 提交表单时,它不会完全停止表单。? 这是原型(prototype)未能阻止事件的 1% 吗?

最佳答案

根据大量 Google 搜索,显然,当调用 .submit() 方法时,不会在表单上触发 onsubmit 事件。这并不是 PrototypeJS 的缺失,更多的是 Javascript 中尚未修复的行为。

您可以通过调用 onsubmit 处理程序,然后观察事件是否停止,然后决定触发提交 method()<,使代码按照您希望的方式运行。/

关于javascript - 使用prototype.js停止表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15612987/

相关文章:

javascript - 从 javascript 对象列表中删除对象

ruby-on-rails - rails - 通过 :params in url

javascript - Prototypejs 与 Underscore 冲突

javascript - 将 javascript 注入(inject)门户应用程序的 iframe

javascript - XSLT 模板不使用参数

javascript - 每次与其他元素发生碰撞时调用函数

javascript - Google reCaptcha v2 - 在提交表单之前检查验证码是否已完成

javascript - 为隐藏的文本区域赋值 onSubmit

javascript - 切换多个复选框 – 原型(prototype) js

javascript - 如何使用原型(prototype)在 HTML 中的当前位置插入元素