2017-01-12 22 views
0

Blurイベントが呼び出されると、警告ボックスが表示されます。

ぼかしイベントは、デフォルトの行では機能しますが、動的に追加される行では機能しません。

私はクラスセレクタも試みましたが、うまくいきませんでした。jQuery:動的に追加された行でblur()が動作しない

HTML:

<table class="test"> 
    <tr><td><input type="button" value="Add" class="plusbtn" /></td> 
    <td><input type="button" value="Remove" class="minusbtn" /></td></tr> 
<tr><th>Fname</th><th>Lname</th> 
</tr> 
<tr> 
    <td><input type='text' id="Fname" ></td> 
    <td><input type='text' id="Lname" ></td> 
</tr> 
    </table> 

のjQuery:

<script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> 
</script> 
<script> 
    $(document).ready(function(){ 
     var markup = "<tr><td><input type='text' id='Fname' ></td><td><input type='text' id='Lname'></td></td></tr>"; 
      $('.plusbtn').click(function() { 
      $(".test").append(markup); 
     }); 
     $('.minusbtn').click(function() { 
      if($(".test tr").length != 1) 
       { 
        $(".test tr:last-child").remove(); 
       } 
      else 
       { 
        alert("You cannot delete first row"); 
       } 
     }); 
     var $Fname=$("#Fname"); 
     var $Lname=$("#Lname"); 

     $('#Fname').on('blur',function(){ 

      alert($Fname.val()) 
     }); 
    }); 
</script> 

私は事前にsuggestions.Thanksを作るissue.Pleaseを解決することができません。

+0

あなたがロードした後、DOMへの追加要素のための委任イベントハンドラを使用する必要があります。詳細については、重複としてマークした質問を参照してください。また、HTMLが追加されたときに 'id'属性を複製していることにも注意してください。' input'要素の 'id'を' class'に変更してください。 –

+0

$( "table")はうまくいきます。 (「ぼやけ」、「#Fname」、function(){ alert( 'hello'); }); –

答えて

2

あなたはすべてのリックで同じIDを持っていますが、これは動作しません。

はまた、あなたは、動的な要素間違っにイベントをバインドされています

$(static_element).on('event', 'dynamic_element', function) 

$(document).on('blur', '.Fname', function() {}); 
+0

ありがとう、ぼかしは動作していますが、その警告に "this"関数を追加する方法。 – Soumya

関連する問題