我正在尝试取消绑定(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/