2011-03-25 52 views
1

我有幾個輸入,它們被動態創建綁定幾個輸入到事件的OnKeyPress

<input style="width:100%" class="fileDescription" type="text" name="' + descriptionId + '" id="' + descriptionId + '" placeholder="Write a file description, hit Enter to save" /> 

我想KeyPress事件附加到所有這些輸入和通過輸入的ID。怎麼做?我試圖使用下面的代碼來附加事件,但這不起作用。此外,我不知道如何將輸入字段的ID傳遞給綁定事件。

$('.fileDescription').bind('keypress', function(e) { 
      e.preventDefault(); 
      alert("Works!"); 

      }); 

回答

4

試試這個:

$('.fileDescription').live('keypress', function(e) { 
    e.preventDefault(); 
    alert(this.id); 
}); 

你會在例如的jsfiddle如何加入的第二個元素動態也適用看看。

JSFiddle Example

+1

你可以使用'this.id' – 2011-03-25 11:42:40

+0

@aSeptik - 所以,你可以更新。謝謝 – 2011-03-25 11:45:34

2
$('.fileDescription').bind('keydown', function(e) {   
      alert($(this).attr('id')); 
      }); 
+0

你可以使用'this.id' – 2011-03-25 11:42:08

0

你的代碼工作完美的我...

http://jsfiddle.net/Jaybles/f6urc/

+0

但它不是創建dinamically。 ;) – 2011-03-25 11:41:33

+0

那麼,我會爭辯說,你的聲明的有效性取決於你如何定義「動態創建」。我的代碼當然可以由PHP動態創建。如果你正在談論JS做這件事,那麼你是正確的,使用'.live()'是正確的方法。 – Dutchie432 2011-03-25 12:26:56

+0

你說得好! ;) – 2011-03-25 12:31:27

相關問題