2012-09-05 154 views
72

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

基本上我有这个输入:

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

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

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

我如何去这样做呢?

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

我是jQuery的新手,所以任何帮助都非常感谢。

回答

137

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

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

可以使用click事件并设置功能的处理程序:

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

.click()

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

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


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

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

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

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

。on()

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

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

+2

+1的各种 – nickaknudson

+0

简单,易于理解。正是我想要的。 另一个问题:什么是使用jQuery整合背景颜色变化的最简单方法?或者更好使用'style.backgroundColor =“white”;'在功能部分? –

+2

'$(“body”).css(“backgroundcolor”,“white”);' - http://api.jquery.com/css/#css2 – hunter

15

试试下面的方法,

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

情况下或者在jQuery是不是一个绝对的necessaity再试试下面,

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

然而上述方法具有一些缺点,因为它的onclick设置为一个属性,而比登记为处理者...

阅读更多关于此职位https://stackoverflow.com/a/6348597/297641

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

试试这个方法,如果你知道你的目标客户的名字(这并不重要,这是按钮或文本框)

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

,如果你想加试这个的人使用JQuery将onClick事件添加到服务器对象中

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

或者你可以使用一个箭头的功能来定义它:

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

    }); 
}); 

为了更好的浏览器支持:

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

    }); 
}); 
+0

我不明白这是如何提供任何新的接受回答已经建议'.click()'方法。在我看来,是否使用箭头函数或常规函数是一个与所提问题无关的讨论。为了更好的浏览器支持,你可能应该删除两个箭头函数,而不仅仅是第一个。 – agrm

+0

因为是另一种使用jQuery的方式 –