2012-11-10 36 views
0

我有一個表單驗證,檢查最小長度,這工作正常。不過,我還需要檢查最大長度。Javascript len函數

我使用所謂的「味精」的textarea的字段中輸入以下代碼來驗證最低lenth,工作正常:

var msgval = $("#msg").val(); 
var msglen = msgval.length; 

if(msglen < 4) { 
$("#msg").addClass("error"); 
} 
else if(msglen >= 4){ 
$("#msg").removeClass("error"); 
} 

這工作得很好,但如果我添加了類似的驗證msglen> 250 ,它忽略了以下最小長度要求:

if(msglen < 4) { 
$("#msg").addClass("error"); 
} 
else if(msglen >= 4){ 
$("#msg").removeClass("error"); 
} 
if(msglen > 250) { 
$("#msg").addClass("error"); 
} 
else if(msglen <= 250){ 
$("#msg").removeClass("error"); 
} 

如何組合這兩個參數?

回答

2

使用邏輯OR運算符來測試這兩個條件。

if (msglen < 4 || msglen > 250) { 
    $("#msg").addClass("error"); 
} else { 
    $("#msg").removeClass("error"); 
} 

不需要else if條件。如果它不少於4且不超過250,那麼你知道你可以移除這個類。


或者更短的版本可以這樣寫:

$("#msg").toggleClass("error", msglen < 4 || msglen > 250); 

作爲第二個參數將添加類通過的一項truthy值。一個虛假的值會將其刪除。

+1

感謝您的快速響應......我是新來的Javascript,應該在發佈前檢查W3Schools教程。參數運算符很自我解釋。 –

+0

@PeterSusko - [MDN](https://developer.mozilla.org/en-US/)有一個非常好的JS參考。如果你想知道一個特定的JS函數如何工作,只需google「thefunctionname mdn」,第一個結果通常是該函數的MDN頁面。 – nnnnnn

0
if(msglen < 4) { 
    $("#msg").addClass("error"); 
} 

添加類error

else if(msglen <= 250){ 
    $("#msg").removeClass("error"); 
} 

中刪除幾行後..

你爲什麼不只是試試這個。

if(msglen < 4 || msglen > 250) { 
    $("#msg").addClass("error"); 
} 
1

我會寫這樣的:

var msgval = $("#msg").val(), 
    msglen = msgval.length, 
    notValid = msgval.length < 4 || msgval.length > 250; 
$('#msg').toggleClass('error', notValid); 

,或者你總是可以在文本框的maxlength屬性設置爲250,然後你不必擔心長度超過250個字符。 :)

+0

'maxlength'在'