首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当禁用javascript时才启用Supress submit event / Submit按钮

仅当禁用javascript时才启用Supress submit event / Submit按钮
EN

Stack Overflow用户
提问于 2010-01-24 09:09:21
回答 3查看 12.8K关注 0票数 5

我在表单上有一些客户端JavaScript验证。它工作得很好。但是我想适应那些禁用了JavaScript的用户。我的验证不是从表单的onsubmit属性运行的,它是一个绑定到表单中普通按钮的事件处理程序。因此,启动验证和提交的按钮实际上并不是一个提交按钮,它只是一个按钮“type=”:

代码语言:javascript
复制
<input type="button" value="Ok" class="okbtn">

然后,我将一个事件处理程序注册到它的click事件,它执行我的验证。如果一切都通过了,它就会提交:

代码语言:javascript
复制
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可以抑制提交吗?我想让我的验证来处理它是否被提交。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-24 09:11:39

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

代码语言:javascript
复制
$('input[type=submit]').bind('click', function(e) {
    e.preventDefault() // prevents the form from being submitted
    clickHandler(); // the custom submit action
});

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

代码语言:javascript
复制
$('form').bind('submit', function(e) {
    e.preventDefault();
    // etc
});
票数 12
EN

Stack Overflow用户

发布于 2010-01-24 09:11:20

您可以通过在form元素中设置onsubmit处理程序来禁止提交,如果验证失败,则返回false。

因此,如果验证成功,则返回true;如果验证失败,则返回false,而不是调用thisForm.submit()

票数 3
EN

Stack Overflow用户

发布于 2010-01-24 09:12:54

将该按钮更改为普通的submit按钮,并将验证检查绑定到表单上的submit()事件。

代码语言:javascript
复制
$("form").submit(function() {
  if (!submitValidation()) {
    return false;
  }
});

从文档中:

当用户尝试提交表单时,submit事件被发送到元素。它只能附加到元素。可以通过单击显式<input type="submit"><input type="image"><button type="submit">提交表单,也可以在某些表单元素具有焦点时按Enter键提交表单。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2125470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档