2011-06-22 48 views
27

gönderilirken 'True' yerine 'On' döndürüyor Project Awesome (http://awesome.codeplex.com/) kullanarak bir MVC3 uygulamasına sahibim, ancak onay kutularında garip bir davranış alıyorum. Bir Modal açılır pencerede aşağıdaki basit Html var. <input type="checkbox" class="check-box" name="IsDeleted">HTML Giriş Onay kutusu,

Bu öğeyi içeren formu gönderdiğimde, post değeri "beklenen" yerine "açık" olur (öğe işaretlendiğinde).

Bunun nedenini bilen var mı? Form verisi ile uğraşan bir yerde javascript olabileceğini sanıyorum, ancak eksik olduğum bir HTML olup olmadığını kontrol etmek istedim.

Teşekkür

+0

işaretini olacaktır. – fungusanthrax

cevap

45

value onay kutuları Set özellik true ve Sonradan değerindeki true alacak.

+6

Bu, yalnızca kullanıcı kutuyu işaretlerse doğrudur. Kontrol edilmezse hiçbir şey gönderilmez. Ayrıca, MVC'nin bağlama mekanizması, bu onay kutusu için hiçbir şey gönderilmediyse değeri null olarak ayarlayacaktır. – Mike

+1

ie: ...... işlev CBSelectedValueToTrue (cb) { ise (cb.kontrol edildi) { cb.value = "true"; } } – BriOnH

4

Bu, tarayıcıya özel, sanırım, değer tanımsız olduğunda ne gönderilir. Size geri iletileceğinden emin olmak için radyolarınız/onay kutularında value özniteliğini tanımlamanız gerekir. value="1"

0

Önerinizi ayarlanmış olup olmadığını kontrol etmelisiniz - iletilen değer önemsizdir, eğer kontrol edilmiyorsa, POST sırasında hiçbir şey gönderilmez.

+0

W3C'de belirtilen mi? Bunun tarayıcıya bağlı olduğunu düşündüm. – sferencik

-4

Tarayıcılar arası karar için jQuery'yi kullanın. Ve yine de true veya yanlış döndürecektir.

$('#check-box-id').attr('checked') == true 

sizin onay kutusu bir kimlik onay kutusu-id varsa

. Mevcut sürümü kullanıma için önümüzdeki (sınıf adına göre seçin):

$('.check-box').attr('checked') == true 
1

deafult tarafından data-val="true" and value="true" ... set onay kutusunu sonra kontrol edilir true

-4

Kullanım jQuery

var out=$('.check-box').is('checked') 
döndürür

Onay kutusu işaretliyse = true else = yanlış

-1

HTML'de, bir dd bir giriş tipi Onay kutusunun üzerinde = "gizli":

Sonra
<input name="active" id="activeVal" type="hidden"> 
<input id="active" type="checkbox"> 

, aşağıdaki gibi bir komut dosyası ekleyin:

$('#activeVal').val($('#active').is(':checked')); 
$('#active').change(function() { 
    $('#activeVal').val($('#active').is(':checked')); 
}); 

Eğer örneğin yapmak

. jQuery $('#your-form').serialize(), bunu bu kimse yardımcı e.target.checked umut olmalıdır zaman, e.target.value kullanıyordum zaman bu vardı active: true işaretlendiğinde onay kutusunun değerini almak ya active: false

İlgili konular