我有一个输入字段,用户只能输入一个2到50之间的数字。上面或下面的任何内容都是无效的。它也必须是一个数值。jQuery验证号码
我到目前为止是这样的:
$('#searchTimes').click(function() {
if($('#replyNumber').val()<=0) {
alert("Please select a value greater than 0 for number of guests");
$('#replyNumber').focus();
return;
}
if($('#replyNumber').val()>=51) {
alert("Please select a value less than or equal to 50 for number of guests");
$('#replyNumber').focus();
return;
}
if(isNaN($('#replyNumber').val())) {
alert("Please enter a numeric value only");
$('#replyNumber').focus();
return;
}
});
是否有写的更好更有效的方式^。
另外...如果所有这些IF语句不是真的,那么我需要执行另一个函数。我如何添加?
你的最后一个条件永远不会运行,因为'VAL()'总是返回一个字符串,从来没有为NaN。在检查值之前,您可能需要'parseInt($('#replyNumber')。val(),10)'。如果此代码按原样运行,则可以在[codereview.se]上更好地询问此问题,但请先查看他们的帮助中心。 –
首先取值一次,尝试将其解析为int并存储在变量中 - 无需在每个if语句中调用.val()方法。然后,如果所有其他条件都是假的,那么要执行一个代码块,您应该创建一个is ... else链,而不是三个单独的if,并在结尾处放置一个简单的else,只有在所有其他条件均为没见过。 – Fiodor