2013-07-23 4 views
8

kullanarak uygun onay kutusu değer elde edin.

Aynı yöntemi kullanarak 1/0 veya true/false değeri elde etmenin bir yolu var mı?

cevap

20

Evet. Onay kutusu işaretli ise sunulacaktır değer onay kutusunu aynı adı taşıyan gizli bir giriş ekleyerek bunu yapabilirsiniz: onay kutusunun işaretli olup olmadığını

<input type="hidden" name="option" value="false"/> 
<input type="checkbox" name="option" value="true"/> 

Bu iki değeri sunacaktır. Fakat sunucu tarafı en sonuncu değeri (onay kutusunun değeri) okuyacaktır

+1

Çok sayıda onay kutunuz varsa, bu yöntem hantal hale gelebilir. İşte daha iyi bir yaklaşım: http://stackoverflow.com/a/7108685/399435 –

+0

Kesinlikle @KarthicRaghupathi ile aynı fikirde değilim. Saydam olmayan mantık ile çok satırlı özel JS, sizin için daha 'wieldy' görünüyorsa, sadece bunun için gidin. Asıl soru, çoklu değil, ikili değerler hakkındaydı. Benim için - iki satır html kodu çok daha şık bir çözümdür. – roody

+0

diğer yaklaşım da ikili değerler içindir. Sadece formdaki tüm onay kutularıyla ilgilenir. Bir formda 20 onay kutusuyla uğraşmak zorunda kaldım. Yaklaşımınız, birkaç JS satırının aksine 40 girdi etiketi anlamına gelir. –

0

Form kontrolünün değeri her zaman için bir dizgedir. Aynı kontrol adı için farklı değerler elde etmek için radyo düğmelerini kullanabilirsiniz:

<form ...> 
    <input type="radio" name="whatever" value="true">true 
    <br> 
    <input type="radio" name="whatever" value="false">false 
    ... 
</form> 

Yalnızca bir kontrol edilebilir ve sadece kontrol ad/değer sunucuya gönderilecek.

<input id="reminder" name="Check1" value="false" type="checkbox" /> 

    <input id="alarm" name="Check2" value="false" type="checkbox" /> 

biz bu onay kutularının değişim olayı bağlamak zorunda ve doğru veya yanlış için değerini ayarlayın:

0
<input type="checkbox" name="check1" value="true" id="check1"> 

sadece biz birden gibi bizim sayfasında checkboxed varsa değerini

+1

onay kutusunu işaretledikten/işaretini kaldırırsak ve daha fazla j'ye ihtiyaç duyarsak güncellenmez – behz4d

0

set .

$('input[type=checkbox]').on('change', function(){ 
    var name = $(this).attr('name'); 
    if($(this).is(':checked')){ 
    $('input[name= "' +name +'"]').val(true); 
     $(this).val(true); 
    } 
    else{ 
     $(this).val(false); 
     $('input[name= "' +name +'"]').val(false); 
    } 
}); 

Varsayılan olarak, onay kutusu değeri Doları ('formunu') görünmüyor. O işaretlendiğinde serializeArray(), Öyle görünüyor. Şimdi formu serialize zaman

<input type="hidden" value="false" name="Check1" /> 
<input type="hidden" value="false" name="Check2" /> 

Şimdi, gibi doğru değeri elde:

Biz gibi her onay kutusu için bir gizli alan tutmak zorunda sahte Check1 = true Check2 =

0

Onay kutuları için yeni bir sınıf ekleyebilir ve tıklandığında değeri ayarlayabilirsiniz.

<input class="checkbox" id="someId" type="checkbox" value="false" />Checkbox 

Ve küçük JQuery yardımcı

$('.checkbox').click(function() { 
    $(this).val() == "false" ? $(this).val("true") : $(this).val("false"); 
}); 

kullanmak Sonra onay kutusunun değeri elde veya bir formu seri hale getirmek mümkün olacak.

İlgili konular