未捕获的ReferenceError:未定义项目

时间:2020-09-02 09:05:54

标签: javascript

我正在进行js验证,想将一个函数传递给另一个函数,但出现错误“未捕获的ReferenceError:未定义项目”。

我的代码:

validation();
            function validation() {
                var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,10})$/;
                function common_inputs() {
         
                    var inputs = $(' input').toArray();
                    inputs.forEach(function(item) {
                    
                        var element = $(item);
                        if (!element.val() == "") {
                            element.closest('.my__item').removeClass('error');
                            
                        }
                        if ( !reg.test(element.val())) {
                            element.closest('.my__item').addClass('error');                                            
                        }   
                    })
            }             
                
                function inputValidatorClick() {
                        common_inputs()
                        var element = $(item);
                        if (element.val() == "") {
                            element.closest('.my__item').addClass('error');
                            
                        }                                               
                }          
                $('.my-button').click(inputValidatorClick) 
                $(' input').keyup(common_inputs)
                           
              }
        },

传递参数“ item”似乎存在问题,但是我是JS的新手,不知道如何解决它。 有人知道如何解决吗?

1 个答案:

答案 0 :(得分:0)

我想在一个功能中使用它-common_inputs。不复制 相同的代码部分

我发现在inputValidatorClick函数内部,您已经做过common_inputs函数内部的事情。

此外,您可以删除仅用于包装validation函数的common_inputs

var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,10})$/;

function common_inputs() {
  $('input').each(function () {
    $(this).closest('.my__item').removeClass('error');
  });

  $('input').filter(function () {
    return this.value === '' || !reg.test(this.value);
  }).each(function () {
    $(this).closest('.my__item').addClass('error');
  });
}

$('.my-button').click(common_inputs);
$('input').keyup(common_inputs)

首先,我们收集所有<input>标签,并从父级(error)中删除所有my__item类。

然后,我们过滤具有无效值(空或与正则表达式模式不匹配)的输入。从那里,我们将error类添加到父母中。