2016-02-22 32 views
1

我有一個範圍複選框,我想檢查它是否被選中。JQuery if語句沒有正確檢測範圍複選框

我相信它沒有正確地檢測複選框出於某種原因。

我當前的代碼(以下簡稱 - 有許多實際的錯誤檢查是類似於#cb_head線):

function validate() { 

    var errMessage = ""; 
    if (!$('#cb_head').is(":checked")) { 
     errMessage += "Header\n";     
    } 

    if (errMessage !== "") { 
      errMessage += "Hasn\'t been verified, proceed with proof?"; 
      confirm(errMessage); 
      return false; 
     } 
     else { 
      return true; 
     } 

    } 

複選框HTML:

<td class="dxflNestedControlCell_Office2010Black"> 
<span class="dxichCellSys dxeBase_DevEx dxeTAR" id="cb_head"> 
<span id="cb_head_S_D" class="dxICheckBox_DevEx dxichSys dxWeb_edtCheckBoxChecked_DevEx"> 
<input id="cb_head_S" name="ctl00$ctl00$ASPxSplitter1$Content$ContentSplitter$MainContent$ASPxCallbackPanel1$ASPxFormLayout3$cb_head" value="U" readonly="readonly" style="border-width:0;width:0;height:0;padding:0;margin:0;position:relative;background-color:transparent;display:block;" type="text"> 
</span></span> 
</td> 

所以這裏就是我試圖得到它的工作,但無濟於事:

找到複選框子元素: JQuery check if checkbox is NOT checked

我相信我有錯誤是在HTML的地方,但我試過的ID:

cb_head_S_D 
cb_head_S 
cb_head 

但它仍然似乎並沒有正確地檢測正確的ID。

如有需要,歡迎提供更多信息。

+3

_span checkbox_是什麼? –

+2

':checked'只適用於複選框,單選按鈕和選擇。 「span」不是其中的一個,所以我不知道你爲什麼期望它能夠工作。 – jmoerdyk

+1

你使用DevExpress控制器嗎?只需檢查輸入的「value」屬性。如果它是=='U',則不檢查,如果它是'C'則檢查。 –

回答

3

the JQuery reference來自:

的:檢查選擇作品複選框,單選按鈕,選擇元件。

問題是你正在嘗試使用它與跨度。

0

我認爲這不起作用的原因是因爲您正在嘗試使用span元素,就像它是輸入元素一樣。 Spans沒有「checked」屬性,所以你不能檢索這個值。

我想你正在創建帶有span標籤的複選框,因爲你可能能夠更好地設計它們。如果是這樣的話,我建議創建第二組隱藏輸入以匹配您的可見跨度複選框。當選中複選框時 - 您還應該使用新值更新隱藏複選框,反之亦然。

然後,當時間到了,您可以在包含真實值的隱藏複選框上執行.is(「:checked」)傳遞。無論如何,您將無法從本地拉出數據。你需要在某個地方有一個匹配的輸入計數器部分。

+0

我正在使用DevExpress,它使用複選框的跨度。 – sojim2

+0

啊,我明白了,是的,這可以做到。哈哈,是的,你需要能夠手動修改代碼才能做到這一點。不知道DevExpress是什麼樣的,從來沒有使用它 – sm1215