2010-08-25 28 views
11

Bir jQueryUI radyo düğmesinin değerini muhtemelen okuyabiliyorum, ancak programlı olarak ayarlayamıyorum. Radyo butonunun değerini değiştirmek için hangi yöntemleri kullanırsam kullanırım, jQueryUI arayüzü arayüzünü güncellemez. BöylecejQueryUI Radyo/Kontrol düğmeleri programsal olarak değişmiyor

<div id="radio"> 
    <input type="radio" name="radio" value="true" checked="checked" />Yes 
    <input type="radio" name="radio" value="false" />No 
</div> 

<script type="text/javascript"> 
    $('#radio').buttonset(); 

    // One of the many ways that won't work. 
    $('[name="radio"]:radio:checked').val("false"); 
</script> 
+0

jQuery UI'yi nerede kullanıyorsunuz? –

cevap

20

böyle değer, güncelledikten sonra:

$('[name="radio"][value="false"]').attr("checked", true); 

Böyle güncellemek için jQuery UI söylemek gerekir:

$('#radio').buttonset("refresh"); 

You can give it a try here.

+0

, cevap verdiğimde sorgunun düğme kümesi oraya gitmedi. :/ –

+0

Bunu hiç düşünmezdim. Teşekkürler. – rebelliard

+0

@Yanick - It was ... o jQuery UI başlangıçtan bahsetti, bu yüzden benim yorumum cevabını sormadan önce bile yayınladı :) –

4
$('[name="state"]:radio:checked').attr('checked', true); // checked 
$('[name="state"]:radio:checked').removeAttr('checked'); // unchecked 

** NOT **

$(':radio').val(); // same as $(':radio').attr('value'); 

:

$(':radio[checked]').val(); // -> the value of the first checked radio button found 
+0

İyiyim üzgünüm. Normal bir radyo düğmesinin nasıl düzgün bir şekilde ileri gittiği göz önünde bulundurulduğunda, böyle detaylar için çok şey olacağını düşünmedim. oO./ – rebelliard

8

i genellikle yapın:

$('[name="radio"][value="false"]').attr("checked", true).trigger("change"); 

buttonset ("refresh") çağrısı programlama yoluyla değerini değiştirerek yaparken sadece tetiklenmez değiştirme olayı bağlıdır - tetikleme el ui çözer sorun ve buttonset

1

olduğu konusunda endişelenmenize gerek yok ben genellikle yapın:

$('[name="radio"][value="false"]').prop("checked", true).trigger("change"); 

değiştirmek için kullanabileceğiniz yerine "attr" nin "pervane" Lütfen "işaretli" belirtmek, bildirmek.

İlgili konular