javascript - 未捕获的 TypeError : obj. attr 不是函数 JS

标签 javascript jquery html

我有以下代码:

<input type="text" name="email" id="email" class="required-input" value="test@yahoo.com">
function validate(obj) {
    const email_regex = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
    if (obj.attr("id") == "email") {
        regex = email_regex;
    }

    (!obj.val().match(regex) || obj.val().length == 0 || obj.val() == '') ? obj.removeClass('valid').addClass('invalid'): obj.removeClass('invalid').addClass('valid');
}

$('.required-input').each(function() {
    $(this).on('input keyup keypress blur change', function() {
         validate(this);   //EROR HERE
    });
});

错误如下Uncaught TypeError: obj.attr is not a function

您知道这个错误的根源吗? 参数函数验证错误?

请问你能帮我解决这个问题吗?

提前致谢!

最佳答案

由于 obj 是 native DOM 对象,因此您会收到错误。将其转换为 jQuery 对象

$(obj).attr("id")

或者,最好传递 jQuery 对象来验证函数。

validate($(this));

关于javascript - 未捕获的 TypeError : obj. attr 不是函数 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35432114/

相关文章:

javascript - 验证javascript中超过2个单选按钮的声音

javascript - 为什么我的按钮输出 WebForm_DoPostBackWithOptions?

javascript - InDesign 脚本 : How to print specific spot color in separations?

javascript - react : how to maintain performance when updating a large parent record from a controlled child input field?

javascript - 如何使用php将动态添加的数据保存并显示到json?

javascript - Div 没有显示在 JavaScript 中?

javascript - 绘制从原点到圆外半径的路径

JavaScript 递增变量

javascript - 多选值 if 语句 jQuery

javascript - 将事件监听器绑定(bind)到具有相同类的多个元素