我有以下脚本与keyup函数配合良好。我还希望它在加载时检查输入值,但无法使其正常工作。
<input type="text" id="test" value="30">
<p style="display:none;" id="error">Error</p>
<script>
$(function() {
$("#test").keyup(function(){
if( $(this).val() != '20') {
$("#error").show();
} else {
$("#error").hide();
}
});
});
</script>
有人可以帮忙吗?
答案 0 :(得分:1)
实现此目的的最简单方法是在页面加载时引发事件,您可以通过使用不带参数的keyup()
来实现这一点。另请注意,使用toggle()
:
$(function() {
$("#test").keyup(function() {
$('#error').toggle($(this).val() != '20');
}).keyup();
});
#error { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="test" value="30" />
<p id="error">Error</p>
答案 1 :(得分:0)
使其成为您在加载和加密时调用两者的功能,例如:
$(function() {
function checkTest(el) {
if( el.val() != '20') {
$("#error").show();
} else {
$("#error").hide();
}
}
checkTest($("#test").keyup(function() {
checkTest($(this));
}));
});
虽然可以通过在元素上触发合成keyup
事件来完成它,但与单纯调用该函数相比,我从未关心过它。
如果这有点令人反感:
checkTest($("#test").keyup(function() {
checkTest($(this));
}));
......你可以将它们分开:
checkTest($("#test"));
$("#test").keyup(function() {
checkTest($(this));
});
前者是因为jQuery&#34; chaining&#34; API,因此设置处理程序的keyup
调用的返回值将传递到checkTest
。
答案 2 :(得分:0)
$(function() {
$("#test").keyup(function() {
if ($(this).val() != '20') {
$("#error").show();
} else {
$("#error").hide();
}
});
$("#test").keyup();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="test" value="30">
<p style="display:none;" id="error">Error</p>