2012-09-05 22 views
72

Z powodu użycia wtyczki, nie mogę dodać atrybutu "onClick" do danych wejściowych formularza HTML, jak zwykle. Wtyczka obsługuje część formularzy w mojej witrynie i nie daje opcji, aby zrobić to automatycznie.Dynamiczne dodawanie zdarzenia onClick za pomocą jQuery

Zasadniczo mam to wejście:

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

Chcę dodać onClick do niego z jQuery onload, aby była ona tak:

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

Jak mogę to zabrać?

Wiem, że to może nie być standardowa praktyka, ale wydaje się najłatwiejszą opcją w mojej sytuacji.

Jestem początkującym użytkownikiem jQuery, więc każda pomoc jest bardzo doceniana.

Odpowiedz

137

Można użyć zdarzenia click i nazywają swoją funkcję lub przenieść swoją logikę do obsługi:

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

Można użyć zdarzenia click i ustawić funkcję obsługi:

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

.Kliknij()

Przypisz obsługę zdarzeń do zdarzenia JavaScript "kliknij" lub wyzwol to zdarzenie na elemencie.

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


Można użyć zdarzenia on związany "click" i nazywają swoją funkcję lub przenieść swoją logikę do obsługi:

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

Można użyć zdarzenia on związany "click" i ustaw funkcję jako nośnika:

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

.on()

Dołączanie funkcję obsługi zdarzeń dla jednego lub więcej zdarzeń, do wybranych elementów z.

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

+2

+1 dla odmiany – nickaknudson

+0

Proste i łatwe do zrozumienia. Dokładnie to, czego chciałem. Kolejne pytanie: jaki jest najłatwiejszy sposób zintegrowania zmiany koloru tła za pomocą jQuery? lub czy lepiej użyć "style.backgroundColor =" white "; w sekcji funkcji? –

+2

'$ (" body "). Css (" kolor tła "," biały ");' - http://api.jquery.com/css/#css2 – hunter

15

Spróbuj poniżej podejściu

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

lub w przypadku jQuery nie jest absolutną necessaity następnie spróbuj poniżej

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

Jednak powyższa metoda ma kilka wad, jak to ustawić onclick jako własność raczej niż być zarejestrowanym jako przewodnik ...

Przeczytaj więcej na ten temat https://stackoverflow.com/a/6348597/297641

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

spróbować tej metody, jeśli znasz nazwę klienta przedmiot (nie jest ważne, że jest przycisk lub TextBox)

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

spróbować to te, jeśli chcesz dodać Zdarzenie onClick do obiektu serwera z JQuery

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

Albo można użyć funkcji strzałki, aby go określić:

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

    }); 
}); 

Dla lepszego wsparcia przeglądarki:

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

    }); 
}); 
+0

Nie widzę, w jaki sposób zapewnia to coś nowego, ponieważ akceptowane Odpowiedź już zasugerowała metodę '.click()'. To, czy używać funkcji strzałek, czy zwykłych funkcji, jest, moim zdaniem, dyskusją niezwiązaną z zadawanym pytaniem. A dla lepszej obsługi przeglądarki powinieneś prawdopodobnie usunąć obie funkcje strzałek, nie tylko pierwszą. – agrm

+0

Ponieważ jest to inny sposób korzystania z jQuery –

Powiązane problemy