为什么我收到此错误?我验证号码时val is not a function
。
$(this).find('#register-validation .next').click(function() {
var _parent = $(this).parents('#register-validation');
$('.loading-big').html(loadMsg).fadeIn(300);
_parent.find('input.required').each(function(index) {
if($(this).val() == "" || $(this).val() == errReq) { // here is fine
$(this).val(errReq);
$(this).addClass("error");
}
else if(isNaN($(this).hasClass('number').val())) { // but when validation goes here, I got this error.
$(this).val(errNum);
$(this).addClass("error");
}
else {
$(this).removeClass("error");
}
});
});
请帮忙。非常感谢。
答案 0 :(得分:4)
$(this).hasClass('number').val()
该行导致您的问题。您正在调用hasClass()返回的布尔值上的.val()。在链接方法时你必须要小心,因为尽管大多数会返回jquery对象,但有些返回不同的值,因此无法链接。
请改为尝试:
$('.number', this).val()
这将在此上下文中选择具有数字类的所有元素。它与执行$(this).find('.number').val()
答案 1 :(得分:1)
else if(isNaN($(this).hasClass('number').val())) {
应该是
else if($(this).hasClass('number') && isNaN($(this).val())) {
答案 2 :(得分:0)
$(this).hasClass('number')
返回一个布尔值,所以你不能链接它。
此外,您可能需要考虑缓存jquery对象,以便它不必一遍又一遍地创建对象。
只需将$this = $(this)
放入您的方法并引用$this
即可提高您的表现。