2013-03-14 15 views
14

Mam dwa przyciski w formularzu i chcę sprawdzić, który został kliknięty. Wszystko działa poprawnie z radiobuttons:jQuery: Sprawdź, czy kliknięto przycisk

if($("input[@name='class']:checked").val() == 'A') 

na prostych złożyć przycisk wszystko katastrofę.

Dzięki!

+5

opublikować kod czego próbowaliśmy już. – SteveP

Odpowiedz

3
jQuery(':button').click(function() { 
    if (this.id == 'button1') { 
     alert('Button 1 was clicked'); 
    } 
    else if (this.id == 'button2') { 
     alert('Button 2 was clicked'); 
    } 
}); 

EDYCJA: - To zadziała dla wszystkich przycisków.

+0

Moje próby: if ($ ("input [@ name = 'submit']: click"). Val() == 'button') $ ("input [type = 'button']"). kliknij (funkcja() { alert ("button with the id:" + $ (this) .attr ("id") + "został kliknięty!"); }); To działa, ale nie jest dobre dla mnie, mam więcej przycisków, nie tylko jeden, więc muszę go odróżnić. Próbowałem wiele kodu i problemy z niektórymi, ponieważ nie można umieścić go w instrukcji, ponieważ nie jestem pewien, co zwraca true lub 1 lub nic (wypróbowane wszystko). Szukam prostszego i podobnego rozwiązania, które mam dla przycisków radiowych. – hobok

+0

dodaj swój kod. z html –

+0

@hobok: - Zobacz zaktualizowaną odpowiedź .. – Pranav

35
$('#submit1, #submit2').click(function() { 
    if (this.id == 'submit1') { 
     alert('Submit 1 clicked'); 
    } 
    else if (this.id == 'submit2') { 
     alert('Submit 2 clicked'); 
    } 
}); 
+1

To dziękuje bardzo. – hobok

+2

Jeśli zadziała, zaznacz to jako odpowiedź. – CodeBroJohn

+2

@Kautil Typo w swoim innym stanie. 'submit1' powinno być' submit2' – nam

0

spróbować czegoś jak:

var focusout = false; 

$("#Button1").click(function() { 
    if (focusout == true) { 
     focusout = false; 
     return; 
    } 
    else { 
     GetInfo(); 
    } 
}); 

$("#Text1").focusout(function() { 
    focusout = true; 
    GetInfo(); 
}); 
4
$('input[type="button"]').click(function (e) { 
    if (e.target) { 
     alert(e.target.id + ' clicked'); 
    } 
}); 

należy dostosować to trochę (np użyć nazwy zamiast dowodu tożsamości w celu ostrzeżenia.), Ale w ten sposób masz funkcję bardziej ogólny .

10

Można to wykorzystać:

$("#id").click(function() 
{ 
    $(this).data('clicked', true); 
}); 

Teraz sprawdź go za pomocą instrukcji if:

if($("#id").data('clicked')) 
{ 
    // code here 
} 

Więcej informacji można znaleźć the jQuery website on the .data() function.

+0

To sprytny pomysł, dzięki –

Powiązane problemy