Javascript 如果jquery的表单输入中存在验证错误,请禁用提交按钮
如果使用jquery的表单输入出现验证错误,我想禁用submit按钮。以下是我正在使用的代码: HTML:Javascript 如果jquery的表单输入中存在验证错误,请禁用提交按钮,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,如果使用jquery的表单输入出现验证错误,我想禁用submit按钮。以下是我正在使用的代码: HTML: 更新:禁用按钮没有问题。问题是,在更正错误后,禁用的属性再次保留!我做错了什么?您没有从\u checkForm(){}函数返回结果。您可以从\u validate一中进行验证,并将其传递给它,但不使用/传递\u checkForm()的结果,因此此验证: if(!_checkForm()) {...} 始终为true,因为\u checkForm不返回任何内容(未定义)并且您的-正在加
更新:禁用按钮没有问题。问题是,在更正错误后,禁用的属性再次保留!我做错了什么?您没有从
\u checkForm(){}
函数返回结果。您可以从\u validate
一中进行验证,并将其传递给它,但不使用/传递\u checkForm()
的结果,因此此验证:
if(!_checkForm()) {...}
始终为true,因为
\u checkForm
不返回任何内容(未定义)并且您的代码>-正在加载它。此外,如果检查通过,您应该返回false
以中断提交。您忘记了返回false
请试试这个:
function _validate(input) {
if( input.val() === '' ) {
_showError(input, 'EMPTYSTR');
return false;
}
return true;
}
function _checkForm() {
$('#orderForm .finput').each(function(){
$(this).focusout(function() {
_validate($(this));
});
});
}
$(document).ready(function() {
$('form#orderForm').submit(function(event) {
event.preventDefault(); // for ajax submission
if(!_checkForm()) {
$('button.submit').prop('disabled', true);
return false;
}
else {
// ajax post
}
});
});
test1.html
功能验证(输入){
if(input.val()==''){
_淋浴ROR(输入“清空系统”);
返回false;
}
返回true;
}
函数_checkForm(){
$('#orderForm.finput')。每个(函数(){
$(this).focusout(函数(){
_验证($(此));
});
});
}
$(文档).ready(函数(){
_checkForm();
$('form#orderForm')。提交(函数(事件){
event.preventDefault();//用于ajax提交
如果(!\u checkForm()){
$('button.submit').prop('disabled',true);
}
否则{
//阿贾克斯邮报
}
});
});代码>
提交
还要添加您的HTML
?代码对我来说很好。你在控制台中是否有任何错误?是的,添加html。让我看看添加了html部分的内容,并更新了我的问题。你知道问题是什么吗?!!它禁用按钮,但在更正错误后,不会删除禁用的按钮attribute@AfshinHaghighat那么,不要禁用它。只是提醒一下。或者,如果禁用它,只要重新启用它,如果\u检查表单
返回true
添加$('button.submit').prop('disabled',false))代码>到其他条件不起任何作用@当然不是。它已经被禁用了。这就是为什么您应该在输入上使用onkeydown事件进行实时操作,或者调用\u checkForm
其他方法way@AfshinHaghighat在google中搜索“javascript验证表单live”,您将看到大量示例
if(!_checkForm()) {...}
function _validate(input) {
if( input.val() === '' ) {
_showError(input, 'EMPTYSTR');
return false;
}
return true;
}
function _checkForm() {
$('#orderForm .finput').each(function(){
$(this).focusout(function() {
_validate($(this));
});
});
}
$(document).ready(function() {
$('form#orderForm').submit(function(event) {
event.preventDefault(); // for ajax submission
if(!_checkForm()) {
$('button.submit').prop('disabled', true);
return false;
}
else {
// ajax post
}
});
});