Javascript 为什么当我填写最后一个输入时,即使所有其他输入都为空,我的表单也会进行验证?

Javascript 为什么当我填写最后一个输入时,即使所有其他输入都为空,我的表单也会进行验证?,javascript,forms,class,validation,oop,Javascript,Forms,Class,Validation,Oop,我有一个联系方式,我正在验证。我知道您可以只使用默认的“required”属性,但是,我需要自定义验证错误消息。因此,我创建了这个JS类-当您初始化该类时,您会传入参数,例如,您要定位的表单、表单中的输入和提交按钮 以下是指向我的代码笔的链接: 我已尝试将if语句检查从'this'关键字更改为字段名称'.field.required'-当我这样做时,第一个输入将响应按钮,即使所有其他输入都为空 this._input = this._form.querySelectorAll(props.inp

我有一个联系方式,我正在验证。我知道您可以只使用默认的“required”属性,但是,我需要自定义验证错误消息。因此,我创建了这个JS类-当您初始化该类时,您会传入参数,例如,您要定位的表单、表单中的输入和提交按钮

以下是指向我的代码笔的链接:

我已尝试将if语句检查从'this'关键字更改为字段名称'.field.required'-当我这样做时,第一个输入将响应按钮,即使所有其他输入都为空

this._input = this._form.querySelectorAll(props.input);

this.checkFieldValue = function() {
     jQuery(this._input).each(function() {
       console.log(jQuery(this).val().length);
       if(jQuery(this).val().length <= 0) {
         $('.fake-click').show();
         var submitHeight = jQuery(submitButton).innerHeight();
         var submitWidth = jQuery(submitButton).innerWidth();
         var submitInputTop = jQuery(submitButton).position().top;
         var submitInputLeft = jQuery(submitButton).position().left;
         $('.fake-click').css({
           "background": "none",
           "width": submitWidth + 5,
           "height": submitHeight + 5,
           "position": "absolute",
           "top": submitInputTop,
           "left": submitInputLeft,
           "z-index": "1"
         });
         $(submitButton).css({
           "opacity": .5
         });
       } else {
         $('.fake-click').hide();
         $(submitButton).css({
           "opacity": 1
         });
       } 
     });
   }

this.\u input=this.\u form.queryselectoral(props.input);
this.checkFieldValue=函数(){
jQuery(this.\u input).each(function(){
log(jQuery(this.val().length);

if(jQuery(this).val().length循环遍历所有输入,并在每次迭代后启用/禁用提交按钮。 只有最后一次迭代(最后一次输入)将确定submit按钮的状态

如果任何输入无效,您可以通过存储布尔值来解决此问题,并使用该值确定是否应启用“提交”按钮。如下所示:

this.checkFieldValue = function () {
    let isValid = true;
    jQuery(this._input).each(function () {
        console.log(jQuery(this).val().length);
        if (jQuery(this).val().length <= 0) {
            isValid = false;
        }
    });
    if (isValid === false) {
        $('.fake-click').show();
        var submitHeight = jQuery(submitButton).innerHeight();
        var submitWidth = jQuery(submitButton).innerWidth();
        var submitInputTop = jQuery(submitButton).position().top;
        var submitInputLeft = jQuery(submitButton).position().left;
        $('.fake-click').css({
            "background": "none",
            "width": submitWidth + 5,
            "height": submitHeight + 5,
            "position": "absolute",
            "top": submitInputTop,
            "left": submitInputLeft,
            "z-index": "1"
        });
        $(submitButton).css({
            "opacity": .5
        });
    } else {
        $('.fake-click').hide();
        $(submitButton).css({
            "opacity": 1
        });
    }
}
this.checkFieldValue=函数(){
让isValid=true;
jQuery(this.\u输入).each(函数(){
log(jQuery(this.val().length);
if(jQuery(this).val().length