我有一個輸入字段,用戶只能輸入一個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