jquery - 仅当禁用 javascript 时才启用禁止提交事件/提交按钮

标签 jquery html forms submit

我在表单上进行了一些客户端 JavaScript 验证。它很好用。但我想适应禁用 JavaScript 的用户。我的验证不是从表单的 onsubmit 属性运行的,它是一个绑定(bind)到表单中普通按钮的事件处理程序。所以启动验证和提交的按钮实际上不是提交,它只是 type="button":

<input type="button" value="Ok" class="okbtn">

然后我向其执行验证的单击事件注册了一个事件处理程序。如果一切通过,它会提交:

function clickHandler(event){
    thisForm = event.data.caller
    var valid = submitValidation(thisForm);
    if (valid == true){
        thisForm.submit();
    } else{
      }
}

我的问题是如果用户禁用了 JS,则无法提交表单。我可以制作按钮 type="submit",它适用于禁用 JS 的用户,但随后它将*始终提交表单并绕过启用 JS 的用户的验证。 (验证将运行,但无论如何都会提交)。如果我制作按钮 type="submit" 是否可以在单击时阻止提交事件?我正在使用 JQuery,JQuery 可以禁止提交吗?我希望我的验证能够处理它是否被提交。

最佳答案

您可以通过执行以下操作来抑制提交点击:

$('input[type=submit]').bind('click', function(e) {
    e.preventDefault() // prevents the form from being submitted
    clickHandler(); // the custom submit action
});

或者,您可以像这样抑制实际的表单提交:

$('form').bind('submit', function(e) {
    e.preventDefault();
    // etc
});

关于jquery - 仅当禁用 javascript 时才启用禁止提交事件/提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125470/

相关文章:

javascript - 如何在不影响行的情况下将 margin-top 设置为元素?

javascript - 自定义 JavaScript 数组的排序功能

javascript - 使用 jquery 获取的 url 参数扩展 Accordion 菜单并将 attr 添加到所需的类

html - 禁用密码完成

javascript - 使用延迟链接循环与多个 ajax 调用

javascript - 通过 PhoneGap 像 GPS 一样移动 map 上的标记

html - 图像和文本在单行按钮中通过 css 没有 float

javascript - 创建带有 Angular 变量作为属性值的div

javascript - 使用 jQuery 提交表单时的竞争条件

forms - 从另一个表单打开一个表单并通过命令单击关闭原始表单