Jquery 如何检查所有字段是否有效?
此代码检查每个元素是否有效,并根据其情况附加css类。 如果元素有效,它将从提交按钮(blocksender)中删除禁用的标记 但是,, 当某个元素有效而某个元素无效时 如果从有效元素中调出焦点,则会启用“提交”按钮。这是个问题 如何检查所有元素?如果它们都有效,我可以启用submit按钮Jquery 如何检查所有字段是否有效?,jquery,forms,validation,prestashop,prestashop-1.6,Jquery,Forms,Validation,Prestashop,Prestashop 1.6,此代码检查每个元素是否有效,并根据其情况附加css类。 如果元素有效,它将从提交按钮(blocksender)中删除禁用的标记 但是,, 当某个元素有效而某个元素无效时 如果从有效元素中调出焦点,则会启用“提交”按钮。这是个问题 如何检查所有元素?如果它们都有效,我可以启用submit按钮 $(document).on('focusout', 'input.validate, textarea.validate', function() { if ($(this).hasClass('
$(document).on('focusout', 'input.validate, textarea.validate', function() {
if ($(this).hasClass('is_required') || $(this).val().length)
{
var result = window['validate_'+$(this).attr('data-validate')]($(this).val())
if (result)
{
$(this).parent().removeClass('form-error').addClass('form-ok');
$(".blocksender").removeAttr("disabled", "disabled");
}
else
{
$(this).parent().addClass('form-error').removeClass('form-ok');
$(".blocksender").attr("disabled", "disabled");
}
}
});
这来自Prestashop 1.6中的validate.js,我在contact_form.tpl中使用它,类似于:
<input class="validate is_required" type="text" id="email" name="from" data-validate="isEmail"/>
我将使用错误类计算元素的数量:如果是0,则启用按钮,如果不是,则禁用它
$(document).on('focusout', 'input.validate, textarea.validate', function() {
if ($(this).hasClass('is_required') || $(this).val().length)
{
var result = window['validate_'+$(this).attr('data-validate')]($(this).val())
if (result)
{
$(this).parent().removeClass('form-error').addClass('form-ok');
// There's the chance of no errors, check it.
var numItems = $('.form-error').length;// Check number of elements with class error.
if(numItems === 0) {// If all items are ok, remove disable.
$(".blocksender").removeAttr("disabled", "disabled");
}
}
else// There's at least one error, no need to check, disable it.
{
$(this).parent().addClass('form-error').removeClass('form-ok');
$(".blocksender").attr("disabled", "disabled");
}
}
});
您应该遍历所有表单元素,以检查它们是否有效。在代码中,您只检查实际输入元素:
if($(this).
。在您的情况下,应该类似于:$('#form input')。每个(function(){if($(this).
也可以从该部分中删除一个“disabled”-.removeAttr(“disabled”,“disabled”)