这段代码用于在函数valid_name不为真时显示错误,并在valid_name
模糊时隐藏错误;错误显示在最初隐藏的div中。出现错误,但不会消失。
function valid_name() {
if (($("#name").length > 5) && ($("#name").length < 20)) {
return true;
} else {
return false;
}
}
$(document).ready(function() {
$('#name').on('blur', function() {
if (!valid_name())
$("#name_erors").text("invalid name").show();
if (valid_name())
$("#name_erors").hide();
});
});
发布于 2013-09-03 07:58:07
我认为
$("#name").length
应该
$("#name").val().length
因为$('#name').length
计数找到的元素,但是要计算您需要使用的字符
$("#name").val().length
所以功能应该是
function valid_name() {
if (($("#name").val().length > 5) && ($("#name").val().length < 20)) {
return true;
} else {
return false;
}
}
你也可以
function valid_name() {
var value = $('#name').val(), len = value.length;
return len > 5 && len < 40;
}
发布于 2013-09-03 08:01:07
使用jQuery进行选择时,返回的对象包含元素。在这种情况下,只有一个,所以length
总是1,您可能要选择值的长度。
尽管如此,这里有一个全优化香草JS解决方案:
document.getElementById('name').onblur = function() {
var notice = document.getElementById('name_errors');
if( this.value.length > 5 && this.value.length < 20) notice.style.display = "none";
else {
notice.style.display = "block"; // or "inline", as applicable
notice.innerHTML = "Invalid name length (must be between 6 and 19 characters)";
}
};
应将此代码放在以下两种方式之一:
name
元素之后的任何位置defer
属性的脚本块中window.onload
处理程序中发布于 2013-09-03 07:58:36
我认为您的函数总是返回false
。试试看
function valid_name() {
if (($("#name").val().length > 5) && ($("#name").val().length < 20)) {
return true;
}
else {
return false;
}
}
$(document).ready(function() {
$('#name').on('blur', function() {
if (!valid_name())
$("#name_erors").text("invalid name").show();
if (valid_name())
$("#name_erors").hide();
});
});
.val()
给出输入字段的值,您应该检查值的长度。
$('#name').length
将返回具有id名称的元素数,这肯定小于5。
https://stackoverflow.com/questions/18596614
复制