2011-07-06 53 views
26

Hy!複選框始終爲「打開」

當Uploadify將文件發送到動作,我需要知道,如果checbox檢查或沒有,所以我所做的:

$('#uploaded').uploadify({ 
     'uploader': '/uploadify.swf', 
     'cancelImg': '/cancel.png', 
     'script': '/Interaction/Upload', 
     'multi': true, 
     'auto': false, 
     'method': 'post', 
     'scriptData': {'Checkbox': $('#checkbox').val()}, 
    }); 

但我跳投得到一個「上」的價值。無論是否被檢查。

任何人都可以幫忙嗎?韓國社交協會。


UPDATE:

我意識到uploadify越來越複選框當頁面loaded.This意味着,如果我改變的複選框(或任何其他類型的輸入)的uploadify將得到初始值,在這種情況下,「checkbox = false」。

如何使用uploadify發送表單?

Tks。

回答

7

變化:

$('#checkbox').val() 

$('#checkbox').attr('checked') 
+1

我總是「虛假」。我不知道爲什麼。 – Thiago

44

嘗試$('#checkbox').is(':checked')

+4

我總是使用這個「假」。 – Thiago

+0

每次都適合我。 – kd7iwp

+0

謝謝你! 這也適用於bootstrap icheckbox。 –

0

用途:

$('#checkbox').attr('checked') 
9

試試這個

$('#checkbox').is(':checked') 
+0

我喜歡這個方法給你一個布爾值。 – kd7iwp

+1

這是唯一適用於我的案例。謝謝! – gumkins

-1

你可以給

如果(jQuery的(本).attr( '檢查')){// u必須使用此選擇根據你的函數可以。點擊.live否則後果不堪設想。 。

感謝

0

我有同樣的問題,發現此解決方案:

if($("input[name='yourcheckbox']").is(':checked')) { 
    console.log('chb checked'); 
} else { 
    console.log('chb not checked'); 
} 
17

一個複選框的值始終是「開」。僅當複選框被選中時,HTML表單纔會將值發送到服務器。如果該框未被選中,則請求參數將不存在。這種語義顯然是爲了儘量減少複選框和單選按鈕之間的差異。

HTML表單實現以下語義:

if ($('#mycheckbox').is(':checked')) { 
    payload['mycheckbox'] = $('#mycheckbox').val(); 
} 

您可以模仿阿賈克斯此語義或直接發送「檢查」標誌如下:

payload['mycheckbox'] = $('#mycheckbox').is(':checked'); 

我建議模仿'HTML表單的語義。不管客戶做什麼,我會在服務器代碼中推薦以下內容:

if mycheckbox param exists and its value is either 'true' or 'on' { // pseudo code of course 
    // mycheckbox is checked 
} else { 
    // mycheckbox is unchecked 
} 

希望這個解釋有幫助。

+0

on語義非常混亂......我希望它讓別人的生活更輕鬆!即使被禁用的複選框的值爲「on」... –

+0

非常令人困惑的實現 - 但這個答案幫助我理解了爲什麼val()總是返回「on」複選框。 –

12

有一個非常方便的方法來檢查所有這些元素屬性,如disabled,checked等與prop函數。這也將其轉換爲布爾值:

$('#checkbox').prop('checked'); // -> true/false 
$('#checkbox').prop('disabled'); // -> true/false 
+0

讓我們把它舉到頂端:) – TheRealChx101

+0

wtf @ chx101!你想從我這裏得到什麼? :P:D –

+0

Vanilla JS:var isChecked = elDom.checked // _> true/false – l0rin