2011-05-17 66 views
1

我想將一個函數綁定到所有文本區域,並希望在按下某個鍵時運行它。將函數綁定到所有文本輸入 - jQuery

function fx(docid) 
{ 
    $('#'+docid).val=encodeURIComponent($('#'+docid).val()); 
    //document.getElementByID('docid').value = encodeURIComponent(document.getElementByID('docid').value); 
} 

注意:頁面會有不同的textarea,我想單個函數爲所有的textarea做同樣的工作。我不想硬編碼的情況下與textarea的<textarea onkeydown="..." />

Edit
我要觸發多個事件的功能,這就是按鍵時,的keydown,單擊

回答

3

textarea只是傳遞的選擇。如果你想讓它觸發文本輸入,以及再使用textarea, input[type="text"]的選擇:

var fxHandler = function (e) { 
    var yourDocId; 
    // code to find/set yourDocId 
    fx(yourDocId); 
}; 

// bind to whatever events you need 
$('textarea').bind('keydown', fxHandler) 
      .bind('keyup', fxHandler) 
      .bind('click', fxHandler); 

當然,如果你運行你的功能書寫的,就會翻一番,三重等編碼值,所以你需要編寫一個只能保留%##值的函數。

+0

+1爲答案,請參閱我的編輯 – Sourav 2011-05-17 03:16:17

+0

根據您的編輯進行更新。 – mVChr 2011-05-17 03:20:21

+0

Ball感謝很多:) – Sourav 2011-05-17 03:24:27

1

到@ mVChr的答案類似,

$('textarea').bind('keypress keydown click', function (e) { 
    var $this = $(this); 
    $this.val(encodeURIComponent($this.val())); 
}); 

,但你幾乎肯定不希望在​​上keypress運行完全相同的功能。

+0

您能否通過查看我的編輯來更改您的代碼 – Sourav 2011-05-17 03:20:07

+0

@Sourav已編輯 – 2011-05-17 03:21:02

+0

非常感謝:) – Sourav 2011-05-17 03:24:17