153

由于使用了插件,我无法像往常一样将“onClick”属性添加到 HTML 表单输入中。一个插件正在处理我网站中的表单部分,它没有提供自动执行此操作的选项。

基本上我有这个输入:

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

我想使用 jQuery onload 向它添加一个 onClick ,使其如下所示:

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

我该怎么做呢?

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

我是 jQuery 的新手,因此非常感谢任何帮助。

4

7 回答 7

250

您可以使用该click事件并调用您的函数或将您的逻辑移动到处理程序中:

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

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

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

。点击()

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

http://api.jquery.com/click/


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

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

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

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

。在()

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

http://api.jquery.com/on/

于 2012-09-05T14:52:12.890 回答
59

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

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

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

$('#' + '<%= ButtonName.ClientID %>').removeAttr('onclick');
$('#' + '<%= ButtonName.ClientID %>').attr('onClick', 'FunctionName(this);');
于 2016-02-11T17:36:55.023 回答
22

试试下面的方法,

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

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

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

但是,上述方法几乎没有缺点,因为它将 onclick 设置为属性而不是注册为处理程序...

阅读更多关于这篇文章https://stackoverflow.com/a/6348597/297641

于 2012-09-05T14:51:54.190 回答
7
$("#bfCaptchaEntry").click(function(){
    myFunction();
});
于 2012-09-05T14:55:07.930 回答
4

或者您可以使用箭头函数来定义它:

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

为了更好的浏览器支持:

$(document).ready(function() {
  $('#bfCaptchaEntry').click(function (){
    
  });
});
于 2017-09-14T22:56:04.677 回答
1
let a = $("<a>bfCaptchaEntry</a>");
a.attr("onClick", "function(" + someParameter+ ")");
于 2020-05-21T11:21:27.360 回答
0

正如@Selvakumar Arumugam 所建议的那样,但注册时的函数调用也

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

而不是使用

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

于 2021-10-01T10:55:20.757 回答