2011-05-17 67 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