2013-04-04 98 views
0

我有我的頁面,其代碼如下定義的複選框,檢查是否複選框被選中:道場的JavaScript

<li class="Checkbox"> 
      <input 
       id="Flag1" 
       onclick="obj(this);" 
       type="checkbox" 
       name="Flag1.CheckName" 
       dojotype="rmt.YNCheckBox" 
        <c:if test="${depotVal.checkFlag}">checked</c:if> 
      /> 
     </li>  

在我的JavaScript,我想檢查,如果上述複選框檢查,只有當它被檢查我正在繼續其餘的代碼。

我試着用下面的代碼。它不工作,並在頁面結尾處發生錯誤。

var chkbox1 = dijit.byId("Flag1"); 

alert(chkbox1.checked); //returns true when checked and false when unchecked 

if ((chkbox1.checked) || (chkbox1.checked == true)){ 
     ... 
     } 

有沒有其他的選擇?如何使其始終如一地工作?上面的代碼片段在Mozilla中也不起作用。

+1

DOM屬性自DOM 0以來一直穩定。如果上述「不起作用」,則問題在別處。減少到仍然顯示行爲併發布的最小示例。發佈客戶端收到的代碼,而不是服務器代碼。 – RobG 2013-04-04 03:02:03

+0

請發佈工作代碼 – 2013-04-04 19:55:11

回答

0

它在哪裏拋出一個錯誤? chkbox1是真正的dijit嗎?

您是否應該使用dijit的domNode

chkbox1.domNode.checked 
+0

在此複選框之後的下一個選擇框中出現錯誤。 – 2013-04-04 18:53:46

+0

對不起,這並沒有什麼幫助,因爲我們看不到所有的代碼。如果'chkbox1'是一個真正的dijit引用,那麼它應該有'domNode'屬性。 – 2013-04-04 19:19:59

0

這是我做的:

var t = query(".dijitCheckBoxInput"); 
array.forEach(t, function(item){ 
    if (item.checked) { 
     item.checked = false; 
    } 
}); 

但是這不會取消複選框它只會改變其內部狀態。要取消選中它們,我將其容器的innerHTML設置爲checkBoxContainer.innerHTML ='';然後我執行最初繪製複選框的函數。

你可能現在想通了,但我想我會把它發佈給其他人嘗試類似的東西。

相關問題