jquery
  • field
  • 2013-01-10 167 views 0 likes 
    0

    刪除追加這是我寫的代碼:從填寫領域

    $('#third_step input[type=text]').each(function(n,element){ 
          if ($(element).val()=='') { 
           //alert('Field '+element.id+' must have a value'); 
           $("label[for='" +element.id+ "']").append('<p class="input_field_error">Bitte füllen Sie dieses Feld!</p>'); 
         error++; 
          }else{ 
         $('.input_field_error').remove(); 
         } 
    }); 
    

    然後當我測試了一下,我點擊提交和未在他們充滿字段顯示錯誤消息,但是當我填入其中的一部分,然後從它們中刪除錯誤消息,並從它們之前的字段中刪除消息,並且之後的字段仍然有錯誤消息!也許我需要從填充字段的標籤中選擇input_field_error!或者,如果這些字段被填充,這不是測試字段的好方法嗎?

    回答

    3
    $('.input_field_error').remove(); 
    

    這將刪除所有元素與input_field_error這不是你想要的類。您只想刪除當前正在驗證的元素。因此,將其更改爲:

    $('.input_field_error', 'label[for="' + element.id + '"]').remove(); 
    

    這隻會選擇input_field_error類中<label>與當前的ID。

    +0

    我想你的意思是'$('label [for =''+ element.id +'「] .input_field_error')'你的版本正在選擇所有的輸入錯誤並且用這個id標籤。 – Syon

    +0

    @idrumgood謝謝你這樣做,我知道我必須這樣做,但我是jquery的新手,我不知道如何選擇只填充字段的標籤!但還有另外一個問題,每次點擊提交按鈕時,append函數都會重複它自己,所以它會重複出錯!有沒有其他選擇來替換附加功能? – TooCooL

    +1

    @Syon Nope。注意分隔兩個選擇器的逗號,然後在這裏看到:http://api.jquery.com/jQuery/#jQuery1。第二個選擇器給出了找到第一個的上下文。 – idrumgood

    0

    您需要調整您的else語句,以便它不會刪除所有類元素。 $('。input_field_error')引用所有項目。

    相關問題