2013-06-15 22 views
23

kontrol işaretini kaldırın Nasıl şey sadece krom olarak radyo düğmesini

$(':radio').on("change", function(event){ 
    $(this).prop('checked', true); 
}); 

$(':radio').on("click", function(event){ 
    $(this).prop('checked', false); 
}); 

firefox

bu çözüm işidir, bu alışkanlık http://jsfiddle.net/wuAWn/

Ofc i değişken kullanmak ve bir şeyler yazabilirsiniz şey seçmenize izin gibi

var val = -1; 
$(':radio').on("click", function(){ 
    if($(this).val()==val) 
    {$(this).prop('checked', false); 
    val = -1; 
    } 
    else val = $(this).val(); 
}); 

Ama benim sayfa ve html içeriği birkaç radyo düğmesi grubuna sahip olacak ajax ile yüklenen, bu yüzden wrtite istiyorum Her bir radyo düğmesi grubunun değişkenlerini tanımlamak ve her radyo düğmesi grubu için aynı işlevi yazmak yerine, hepsi için 1 işlev.

Düzenleme: onay kutularıyla ilgili yardımlarınız için teşekkür ederiz, ancak onay kutusu için bir radyo düğmesi grubu olarak davranmanız gerektiğinde, diğer tüm onay kutularının işaretini kaldırabilecek diğer javascripti yazmanız gerekir, oncelikle aynı adda onclick, zaten radyo düğmesi css var ve daha kolay benim için sadece görünüşe benzeyen checkbox gibi bir sınıf eklemek ve onay kutusu gibi görünmesini sağlamak için özel bir görünüm için tekdüze kütüphane kullanıyorum, burada benim garip bir çözümümdür. http://jsfiddle.net/wuAWn/9/

+0

radyo onay kutularını devre dışı bırakılması .. ulaşmaya çalışıyor nedir? sonra devre dışı = "disabled" özelliğini kullanabilirsiniz .. – arnorhs

+0

Hayır onları devre dışı bırakmak için wat yok, ben zaten kontrol işaretini kaldırın izin veren, radiobutton grubu oluşturmak istiyorum. – ccd580ac6753941c6f84fe2e19f229

+0

@ Özellikle bunun neden bir çift olarak işaretlendiğini merak ediyorum? Bu kişi tıklandığında kontrol edilen bir radyo düğmesinin işaretini nasıl kaldıracağını soruyor. Bu sadece bir onay kutusunu kontrol eden tamamen farklı bir yaratıktır. Bu klavyeye bakın: http://jsfiddle.net/x48cx/ – Pytry

cevap

12

Radyo düğmeleri istenen seçenekler içindir ... kontrol edilmemelerini, bir onay kutusu kullanmasını, herhangi bir şeyi karmaşıklaştırmamasını ve kullanıcıların bir radyo düğmesinin işaretini kaldırmasına izin vermemenizi; JQuery kaldırarak bunlardan biri

+1

+1, Bir takım onay kutularını kesin olarak sınırlamak için jquery yazmak çok daha kolay sayısı (senaryonuzda 1) – Mikhail

+0

Ofc.Bunu yapabilirim, btu radyo düğmeleri için zaten css ve radyo düğmeleri gibi davranabilmek için onay kutularının için, javascript yazmam gerekiyor, çok zor değil, ama yine de, bunun mümkün olup olmadığını bilmek istedim değişkensiz ya da değil. – ccd580ac6753941c6f84fe2e19f229

+4

Bu, tüm tarayıcılarda çalışıyor burada kontrol edin. [http://jsfiddle.net/f4vXj/2/](http://jsfiddle.net/f4vXj/2/) – banny

3

tüm radyo için bu

tek işlevi denemek dan seçmenize olanak verir var sınıf "radyo düğmesi" krom

iş ve FF

http://jsfiddle.net/wuAWn/5/

$('.radio-button').on("click", function(event){ 
    $('.radio-button').prop('checked', false); 
    $(this).prop('checked', true); 
}); 
+2

Zaten seçili olan seçimin kaldırılmasına izin vermeyiniz. – ccd580ac6753941c6f84fe2e19f229

+0

Aynı sayfada birden fazla radyo düğmesi grubuna sahipseniz bu kötü bir fikir olur. – olleicua

5

Her birine ek bir radyo düğmesi eklemeyi düşünebilirsiniz. grup 'none' veya benzerlerini etiketledi. Bu, geliştirme sürecini karmaşıklaştırmadan tutarlı bir kullanıcı deneyimi oluşturabilir.

+0

Teşekkürler, ama bazı durumlarda, cinsiyet erkek, kadın, hiçbiri – ccd580ac6753941c6f84fe2e19f229

+1

seçmek gibi 'garip' demeye gerek yok, garip görünecek. Kullanıcılarınızın örneğin cinsiyet belirtmemesine izin vermek istiyorsanız, 'belirtilmemiş' etiketli bir radyo düğmesine sahip olabilirsiniz. Aradığınız davranış, önceden seçilmiş bir radyo düğmesini tıklamanızın seçilmemiş olmasına neden oluyor mu? – olleicua

+1

Bir seçim kutusu da bir seçenek olabilir. Varsayılan 'belirtilmemiş' – Hashbrown

0

bu

http://jsfiddle.net/wuAWn/6/

$('.radio-button').on("click", function (event) { 
     var this_input = $(this); 
     if (this_input.attr('checked1') == '11') { 

      this_input.attr('checked1', '11') 

     } 
     else { 
      this_input.attr('checked1', '22') 
         } 
     $('.radio-button').prop('checked', false); 
     if (this_input.attr('checked1') == '11') { 
      this_input.prop('checked', false); 
      this_input.attr('checked1', '22') 
     } 
     else { 
      this_input.prop('checked', true); 
      this_input.attr('checked1', '11') 
     } 

    }); 
+0

@ user2486415 bunu deneyin .. Ayrıca işaretini kaldırın –

+0

Teşekkürler, onun güzel bir çözüm, ama sorun var, 1,2,3 tıklayıp tekrar 1,2,3 – ccd580ac6753941c6f84fe2e19f229

+1

@ user2486415'e tıklamayı deneyin şimdi tekrar deneyiniz http : //jsfiddle.net/wuAWn/10/ –

34

Bu basit bir script size zaten işaretli radyo düğmesini işaretini sağlar deneyin. Tüm javascript özellikli tarayıcılarda çalışır. Bu sorunun eksik olan nedir

<html> 
    <!-- html from your link: [http://jsfiddle.net/wuAWn/][1] --> 
    <body> 
     <input type='radio' class='radio-button' name='re'> 
     <input type='radio' class='radio-button' name='re'> 
     <input type='radio' class='radio-button' name='re'> 
    </body> 

    <script type="text/javascript"> 
     var allRadios = document.getElementsByName('re'); 
     var booRadio; 
     var x = 0; 
     for(x = 0; x < allRadios.length; x++){ 

      allRadios[x].onclick = function() { 
       if(booRadio == this){ 
        this.checked = false; 
        booRadio = null; 
       }else{ 
        booRadio = this; 
       } 
      }; 
     } 
    </script> 
</html> 

http://jsfiddle.net/6Mkde/

+1

Bu örnek, radyo düğmesini iki kez tıklatırsanız sayfa zaten kontrol edilen giriş ile yüklenir. –

İlgili konular