2017-03-08 60 views
1

所以我有這個代碼,我說的if website_name===""顯示錯誤,但它似乎並沒有工作,因爲如果我輸入的東西,並刪除它,所以它是空的它仍然顯示它是有效的所以它運行else語句,但是如果我鍵入一個數字,那麼我會得到一個錯誤,但我也需要它來處理空值。驗證不工作,如果值爲空

var message; 
    var inputField = document.getElementById("website_name"); 
$("#website_name").keyup(function() { 
    if(website_name==="" || !/^[a-z]*$/.test(this.value)) 
    { 
    $("#website_name").css('border', '3px solid red'); 
    inputField.style.backgroundColor = "#f27676"; 
    message = 'Only lower case characters allowed!'; 
    $('div.modal-body .msgPlaceholder').empty().append(message); 
    }else{ 
    $("#website_name").css('border', '3px solid green'); 
    inputField.style.backgroundColor = "#56c145"; 
    message = 'Your name is correct'; 
    $('div.modal-body .msgPlaceholder').empty().append(message); 
    } 
}); 
+0

'if(website_name ==「」|| !/^[a-z] * $ /。test(this.value))' –

+0

「===」確保數據類型與您正在比較的數據類型完全相同。假設website_name是未定義的,那麼如果您比較空字符串,則不是這樣。因此,只需使用兩個「==」並進行自動類型轉換,並且將返回true,因爲未定義匹配空字符串。 –

回答

6

你必須使用this.value == "",而不是website_name == ""因爲website_name不是variable

,如果你想檢查前使用toLowerCase,試試這個:

var val = this.value.toLowerCase(); 
if (val == "") 

var message; 
 
var inputField = document.getElementById("website_name"); 
 
$("#website_name").keyup(function() { 
 
    if (this.value == "" || !/^[a-z]*$/.test(this.value)) { 
 
    $("#website_name").css('border', '3px solid red'); 
 
    inputField.style.backgroundColor = "#f27676"; 
 
    message = 'Only lower case characters allowed!'; 
 
    $('div.modal-body .msgPlaceholder').empty().append(message); 
 
    } else { 
 
    $("#website_name").css('border', '3px solid green'); 
 
    inputField.style.backgroundColor = "#56c145"; 
 
    message = 'Your name is correct'; 
 
    $('div.modal-body .msgPlaceholder').empty().append(message); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="website_name" />

+0

我想補充一點,使事情公平和更普遍。不要使用正則表達式檢查大寫/小寫...網站不限於從a到z的字母。更好的主意是小寫用戶輸入的內容而不是檢查小寫字母......只需使用「toLowerCase」即可。 –

+0

@LoïcFaure-Lacroix是對我還是Przemek的一種印象? –

+0

@LoïcFaure-Lacroix所以你的建議如何代碼看起來像? – Przemek