javascript - 防止默认后重新启用提交

标签 javascript jquery

我正在尝试取消绑定(bind)或重新启用防止默认设置,以便我的表单将提交正确的数据。

我已经尝试了多个示例。这是我的代码和我尝试过的一些示例。

这段代码非常适合我想要的。最后一件事是重置 div,在我得到它之后我可以实现它。

function lengthRestriction(elem, min, max) {
    var uInput = elem.value;
    if (uInput.length >= min && uInput.length <= max) {
        return true;
    } else {
        var cnt = document.getElementById('field');
        cnt.innerHTML = "Please enter between " + min + " and " + max + " characters";
        elem.focus();
        $('#ShoutTweet').submit(function(e) {
            e.preventDefault();

            //bind('#ShoutTweet').submit();
            //$('#ShoutTweet').trigger('submit'); 
        });
    }
}​

我也设置了一个jsbin http://jsbin.com/ebedab/93

最佳答案

不要尝试在验证函数中设置和取消提交处理程序,相反:从单个提交处理程序中调用验证,并且只调用 .preventDefault()如果验证失败:

$(document).ready(function() {

    $('#ShoutTweet').submit(function(e) {
       if (/* do validations here, and if any of them fail... */) {
          e.preventDefault();
       }
    });

});

如果您的所有验证都通过了,就不要调用 e.preventDefault(),提交事件将默认发生。

或者,您可以从提交处理程序返回 false 以防止出现默认情况:

    $('#ShoutTweet').submit(function(e) {
       if (!someValidation())
          return false;

       if (!secondValidation())
          return false;

       if (someTestVariable != "somevalue")
          return false;

       // etc.
    });

关于javascript - 防止默认后重新启用提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856942/

相关文章:

javascript - 使用javascript/jquery拨号

javascript - 如何在 VueJS 应用程序中使用 Google Web 字体?

javascript - 更改所有td颜色

javascript - Instafeed.js 和 jQuery colorbox

javascript - 无法在 angularjs 服务中获得警报

javascript - 重写展平函数

javascript - 使用 javascript 获取 Json 数据 (Google Api)/Trello

javascript - 通过 JS 在 svg 中添加图像命名空间仍然没有显示图片

javascript - 移动网络应用 : Using same set of images in multiple resolution devices

javascript - 未捕获的语法错误 : Unexpected token } in jquery-1. 9.1.min.js