Saya memiliki 2 tombol radio dan jquery yang sedang berjalan.
<input type="radio" name="lom" value="1" checked> first
<input type="radio" name="lom" value="2"> second
Sekarang, dengan sebuah tombol saya dapat mengatur onClick untuk menjalankan suatu fungsi. Bagaimana cara agar tombol radio menjalankan fungsi saat saya mengklik salah satunya?
javascript
jquery
David19801
sumber
sumber
Jawaban:
Anda dapat menggunakannya
.change
untuk apa yang Anda inginkan$("input[@name='lom']").change(function(){ // Do something interesting here });
pada jQuery 1.3
Anda tidak lagi membutuhkan '@'. Cara yang benar untuk memilih adalah:
$("input[name='lom']")
sumber
$("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
error. Jadi ini bukan soal pilihan.Jika Anda memiliki radio dalam wadah dengan id = radioButtonContainerId Anda masih dapat menggunakan onClick dan kemudian periksa mana yang dipilih dan menjalankan beberapa fungsi:
$('#radioButtonContainerId input:radio').click(function() { if ($(this).val() === '1') { myFunction(); } else if ($(this).val() === '2') { myOtherFunction(); } });
sumber
<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()
sumber
ini seharusnya bagus
$(document).ready(function() { $('input:radio').change(function() { alert('ole'); }); });
sumber
Ada beberapa cara untuk melakukannya. Memiliki wadah di sekitar tombol radio sangat disarankan, tetapi Anda juga dapat meletakkan kelas langsung pada tombol. Dengan HTML ini:
<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>
Anda dapat memilih berdasarkan kelas:
$(".shapeButton").click(SetShape);
atau pilih berdasarkan ID penampung:
$("#shapeList").click(SetShape);
Dalam kedua kasus tersebut, acara akan memicu klik baik tombol radio atau label untuk itu, meskipun anehnya dalam kasus terakhir (Memilih dengan "#shapeList"), mengklik label akan memicu fungsi klik dua kali karena beberapa alasan, di paling tidak di FireFox; memilih berdasarkan kelas tidak akan berhasil.
SetShape adalah sebuah fungsi, dan terlihat seperti ini:
function SetShape() { var Shape = $('.shapeButton:checked').val(); //dostuff }
Dengan cara ini, Anda dapat memiliki label pada tombol Anda, dan dapat memiliki beberapa daftar tombol radio pada halaman yang sama yang melakukan hal berbeda. Anda bahkan dapat meminta setiap tombol dalam daftar yang sama melakukan hal yang berbeda dengan menyiapkan perilaku yang berbeda di SetShape () berdasarkan nilai tombol.
sumber
sebaiknya batasi pencarian DOM. jadi lebih baik menggunakan induk juga, sehingga seluruh DOM tidak akan dilalui.
<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 });
sumber