使用 jQuery 动态添加 onClick 事件

由于使用了一个插件,我不能像通常那样将“ onClick”属性添加到 HTML 表单输入中。 一个插件正在处理我网站上的表单部分,它没有提供一个选项来自动完成这项工作。

基本上我有这样的输入:

<input type="text" id="bfCaptchaEntry" name="bfCaptchaEntry" style="">

我想添加一个 onClick 到它与 jQuery onload 为它是这样的:

<input onClick="myfunction()" type="text" id="bfCaptchaEntry" name="bfCaptchaEntry" style="">

我该怎么做呢?

我知道这可能不是标准的做法,但似乎是最容易的选择做在我的情况。

我是 jQuery 的新手,所以非常感谢你们的帮助。

459326 次浏览

试试下面的方法,

$('#bfCaptchaEntry').on('click', myfunction);

或者如果 jQuery 不是绝对必要的,那么在下面尝试一下,

document.getElementById('bfCaptchaEntry').onclick = myfunction;

但是上面的方法有一些缺点,因为它将 onclick 设置为一个属性,而不是注册为处理程序..。

阅读更多 https://stackoverflow.com/a/6348597/297641文章

您可以使用 click事件并调用函数或将逻辑移入处理程序:

$("#bfCaptchaEntry").click(function(){ myFunction(); });

您可以使用 click事件并将函数设置为处理程序:

$("#bfCaptchaEntry").click(myFunction);

。点击()

将事件处理程序绑定到“ click”JavaScript 事件,或者在元素上触发该事件。

Http://api.jquery.com/click/


您可以使用绑定到 "click"on事件并调用函数或将逻辑移入处理程序:

$("#bfCaptchaEntry").on("click", function(){ myFunction(); });

您可以使用绑定到 "click"on事件,并将函数设置为处理程序:

$("#bfCaptchaEntry").on("click", myFunction);

。在()

将一个或多个事件的事件处理程序函数附加到 选定的元素。

Http://api.jquery.com/on/

$("#bfCaptchaEntry").click(function(){
myFunction();
});

如果您知道对象客户端的名称(Button 或 TextBox 并不重要) ,请尝试这种方法

$('#ButtonName').removeAttr('onclick');
$('#ButtonName').attr('onClick', 'FunctionName(this);');

如果您想使用 JQuery 将 onClick 事件添加到服务器对象,可以尝试使用这些方法

$('#' + '<%= ButtonName.ClientID %>').removeAttr('onclick');
$('#' + '<%= ButtonName.ClientID %>').attr('onClick', 'FunctionName(this);');

或者你可以使用一个箭头函数来定义它:

$(document).ready(() => {
$('#bfCaptchaEntry').click(()=>{
    

});
});

更好的浏览器支持:

$(document).ready(function() {
$('#bfCaptchaEntry').click(function (){
    

});
});
let a = $("<a>bfCaptchaEntry</a>");
a.attr("onClick", "function(" + someParameter+ ")");

像@Selvakumar Arumugam 建议的那样,但是注册的函数调用也

$('#bfCaptchaEntry').on('click', myfunction);,

而不是利用

$('#bfCaptchaEntry').on('click', () => { myfunction});