2013-03-21 46 views
0

我正在嘗試爲表單創建一個實時驗證腳本。無論如何,我已經有點了解了......但是當字段中有文本時出現錯誤信息,而不是當沒有文本時。我敢肯定,我正在做一些愚蠢的錯誤,我敢肯定我有如果價值觀是正確的,value == ''是如果價值是沒有什麼,value !== ''是如果價值不是沒有,對不對?呃,也許這是我應該改變的開啓/改變的事情?希望你能幫助。謝謝。jQuery實時驗證

http://jsfiddle.net/Vjwxs/3/

$(document).ready(function() {  
    $('#name').on('change', function() { 
     var name = $("#name").val(); 
     if (!this.value == '') { 
      $("#errorname").fadeIn(); 
      $('#errorname').css("display", "inline-block"); 
      $('#errorname').css("color", "#838383"); 
      $('#errorname').css("background-color", "#fff568"); 
     } 
     else if (!this.value !== '') { 
      $("#errorname").fadeOut(); 
      $('#errorname').css("display", "none"); 
     } 
    }); 
}); 
+1

如果你擺脫了第一個,它會更容易理解!在每種情況下。 '(this.value!='')'和'(this.value =='')' – 2013-03-21 14:10:26

+0

謝謝Kevin B. – user1375823 2013-03-21 14:18:47

回答

4

閱讀您的if條件出聲來。這應該可以幫助您實現哪裏有問題:

if (!this.value == '') { /* Show the error */ } 

「如果這個值等於空字符串」。或者,以更容易理解的形式,「如果這個值是而不是等於一個空字符串」。你實際上想顯示錯誤「如果這個值等於一個空字符串」。

if (!this.value !== '') { /* Hide the error */ } 

「如果這個值是不等於一個空字符串」。再次,更可讀,「如果這個值是不是等於一個空字符串」。你實際上想隱藏錯誤「如果這個值不是等於一個空字符串」。

如果您remove the first negation from both conditions您的代碼將工作。

+0

啊,謝謝...知道這是愚蠢的事情,該死的哈哈。謝謝。我會盡快接受答案,一旦它讓我。 – user1375823 2013-03-21 14:18:23

+1

@ user1375823 - 不客氣,很高興我能提供幫助。 – 2013-03-21 14:19:21