2011-08-08 47 views
0

我有一個位於三行三列表格中間的textexbox。 「外部」表格單元格用於爲文本框添加一些裝飾。輸入到texbox中的數據無效時,文本框的顏色會發生變化,周圍的圖像也會發生變化。這是我的問題所在。在登錄頁面上有用戶名texbox和密碼文本框。如果我點擊提交,他們中的任何一個都沒有填寫texbox變化的顏色,就像圖像一樣顯示該字段是必需的。我的問題是,當用戶輸入一些文本時,如何讓它們恢復正常?我可以編寫自己的JavaScript來處理這個問題,但我試圖使用jQuery來驗證,就像應用程序的其餘部分一樣。有任何想法嗎?帶有樣式文本框的jQuery驗證插件

這裏是我現在的工作:

 $.APP.login = $("#logOnDiv > form").validate({ 
     errorPlacement: function (error, element) { 
      element.parents('table').removeClass('input-table'); 
      element.parents('table').addClass('invalid-input-table'); 
     }, 
     errorClass: "invalid-decorated-input" 
    }); 

回答

0

聽文本框本身就像keypress的事件。假設每個文本框有一個稱爲isValidated類...

$('.isValidated').keypress(function() { 
    if($(this).val().length) { //we have text now 
    $(this).parents('table.invalid-input-table').removeClass('invalid-input-table'); 
    //put any other code to remove other html elements (like the images here) 
    //traversal would be from the text box, so you could do things like $(this).siblings('img').remove(), etc. 
    } 
}); 

有更有效的方式使用live事件並添加無效類文本框自身要做到這一點,但是這已經足夠了,除非你我們正在談論很多領域。

+0

感謝您的回覆。我不確定這是我在找什麼。我知道我可以簡單地使用類來定位texbox,但這並沒有幫助,因爲表格中textxbo周圍的圖像也需要更改。我也不知道按鍵是我正在尋找的,因爲它沒有提供任何驗證文本實際上被輸入。 – Nick

+0

我擴大了答案是更強大一點。沒有你的具體DOM,這是儘可能具體的,我可以得到。 –

+0

這個想法是動態的,可以在每個頁面上使用。然而,你的建議讓我想到了,我想出了這個:好吧,我放棄了試圖在本節中發佈代碼。基本上我使用了一些代碼,並做了兩處更改。我擺脫了.parents,並用最接近的方式替換了它,並且在改變類的函數中爲keypress事件添加了一個監聽器。 – Nick