Динамическое добавление события onClick с помощью jQuery


из-за используемого плагина я не могу добавить атрибут "onClick" к входам HTML-формы, как обычно. Плагин обрабатывает часть форм на моем сайте, и он не дает возможности сделать это автоматически.

в основном у меня есть этот вход:

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

Я хочу добавить onClick к нему с помощью jQuery onload, чтобы он был таким:

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

Как мне это сделать?

Я знаю, что это не стандартная практика, но похоже самый простой вариант сделать в моей ситуации.

Я новичок в jQuery, поэтому любая помощь очень высоко ценится.

5 89

5 ответов:

можно использовать click событие и вызов функции или переместить логику в обработчик:

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

можно использовать click событие и установить функцию в качестве обработчика:

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

.нажмите ()

привязать обработчик событий к событию JavaScript" click " или вызвать это событие на элементе.

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


вы можно использовать on событие привязано к "click" и вызовите свою функцию или переместите свою логику в обработчик:

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

можно использовать on событие привязано к "click" и установите свою функцию в качестве обработчика:

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

.on ()

прикрепить функцию обработчика событий для одного или нескольких событий отдельные элементы.

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

попробуйте этот подход, если вы знаете имя клиента объекта (не важно, что это кнопка или текстовое поле)

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

попробуйте это, если вы хотите добавить событие onClick в объект сервера с помощью JQuery

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

попробуйте ниже подход,

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

или в случае, если jQuery не является абсолютной необходимостью, попробуйте ниже,

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

однако вышеуказанный метод имеет несколько недостатков, поскольку он устанавливает onclick как свойство, а не регистрируется как обработчик...

подробнее об этом посте https://stackoverflow.com/a/6348597/297641

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

или вы можете использовать функцию стрелки, чтобы определить это:

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

  });
});

для лучшей поддержки браузера:

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

  });
});