Mam 2 przyciski radiowe i uruchomione jQuery.
<input type="radio" name="lom" value="1" checked> first
<input type="radio" name="lom" value="2"> second
Teraz za pomocą przycisku mogę ustawić onClick, aby uruchomić funkcję. W jaki sposób można ustawić przyciski opcji, aby uruchamiały funkcję, gdy klikam jeden z nich?
javascript
jquery
David19801
źródło
źródło
Odpowiedzi:
Możesz używać
.change
do tego, co chcesz$("input[@name='lom']").change(function(){ // Do something interesting here });
od jQuery 1.3
nie potrzebujesz już znaku „@”. Prawidłowy sposób wyboru to:
$("input[name='lom']")
źródło
$("input[name='lom']")
$("input[name='lom']").change(function(){ if ($(this).val() === '1') {..... // rest conditional statements based on values here } ;
jquery.self-0a6570c….js?body=1:1464 Uncaught Error: Syntax error, unrecognized expression
błąd. Więc to nie jest kwestia wyboru.Jeśli masz swoje radia w kontenerze z id = radioButtonContainerId, nadal możesz użyć onClick, a następnie sprawdzić, który z nich jest wybrany i odpowiednio uruchomić niektóre funkcje:
$('#radioButtonContainerId input:radio').click(function() { if ($(this).val() === '1') { myFunction(); } else if ($(this).val() === '2') { myOtherFunction(); } });
źródło
<input type="radio" name="radio" value="creditcard" /> <input type="radio" name="radio" value="cash"/> <input type="radio" name="radio" value="cheque"/> <input type="radio" name="radio" value="instore"/> $("input[name='radio']:checked").val()
źródło
To powinno być dobre
$(document).ready(function() { $('input:radio').change(function() { alert('ole'); }); });
źródło
Można to zrobić na kilka sposobów. Posiadanie kontenera wokół przycisków opcji jest bardzo zalecane, niezależnie od tego, ale możesz również umieścić klasę bezpośrednio na przyciskach. W tym HTML:
<ul id="shapeList" class="radioList"> <li><label>Shape:</label></li> <li><input id="shapeList_0" class="shapeButton" type="radio" value="Circular" name="shapeList" /><label for="shapeList_0">Circular</label></li> <li><input id="shapeList_1" class="shapeButton" type="radio" value="Rectangular" name="shapeList" /><label for="shapeList_1">Rectangular</label></li> </ul>
możesz wybrać według klasy:
$(".shapeButton").click(SetShape);
lub wybierz według identyfikatora kontenera:
$("#shapeList").click(SetShape);
W obu przypadkach zdarzenie zostanie wywołane po kliknięciu przycisku opcji lub jego etykiety, choć w tym drugim przypadku dziwnie (zaznaczenie przez „#shapeList”), kliknięcie etykiety spowoduje dwukrotne z jakiegoś powodu kliknięcie na najmniej w FireFox; wybór według klasy tego nie zrobi.
SetShape to funkcja, która wygląda następująco:
function SetShape() { var Shape = $('.shapeButton:checked').val(); //dostuff }
W ten sposób możesz mieć etykiety na przyciskach i możesz mieć wiele list przycisków radiowych na tej samej stronie, które wykonują różne czynności. Możesz nawet ustawić każdy przycisk na tej samej liście, aby wykonywał różne rzeczy, ustawiając różne zachowanie w SetShape () na podstawie wartości przycisku.
źródło
zawsze dobrze jest ograniczyć wyszukiwanie DOM. więc lepiej jest również użyć rodzica, aby cały DOM nie został przemierzony.
<div id="radioBtnDiv"> <input name="myButton" type="radio" class="radioClass" value="manual" checked="checked"/> <input name="myButton" type="radio" class="radioClass" value="auto" checked="checked"/> </div> $("input[name='myButton']",$('#radioBtnDiv')).change( function(e) { // your stuffs go here });
źródło