我有以下代码:
<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/