2012-12-06 51 views
0

我有一個表格,它被分成Kendo UI Panel Bar。在第一個面板中,我有一個字段,當填充任何文本時,會檢查當前不可見的複選框,並位於其下方的摺疊面板內。如果滿足其他數據條件,則將隱藏複選框設置爲真

我的問題是該複選框不檢查。我讀過一些關於複選框在不可見時如何禁用的帖子。有沒有解決方法?

function Validate(uid) { 
    if ($("#SomeNumber_" + uid).val().length > 0) 
    { 
     $("#MyCheckBox").attr('checked', true); //This checkbox is display:none at the time this is set 
     //Also tried these, but they didn't work: 
     //$("#MyCheckBox").click(); 
     //var myCheckBox= document.getElementById("MyCheckBox"); 
     //myCheckBox.checked = true; 
    } 
} 
+0

當你說看不見你指的是CSS顯示:無;? – War10ck

+0

如果複選框將始終保持隱藏狀態,那麼爲什麼不使用隱藏的表單域並存儲布爾值? –

+0

是的。顯示:沒有在父元素上設置。不,該複選框並不總是隱藏。一些表單域是隱藏的,直到用戶完成表單的各個部分來分解表單並使其不至於太過壓倒。我確實發現了這個問題(下面的解決方案評論)。我有一個元素在項目的某個地方潛伏着相同的ID,並且它正在檢查,而另一個則沒有。非常感謝您的幫助和快速回復,但是我很抱歉沒有發現在我發佈之前它不是什麼傻事。 –

回答

2

通過一個按鈕動態變化的,它只是測試了一個複選框顯示沒有。它適用於顯示未設置。

http://jsfiddle.net/jmsessink/hcWf8/1/

下面將您的複選框的ATTR設置爲 '檢查' -

本 -

$('#MyCheckBox').attr('checked', true) 

以及

$('#MyCheckBox').attr('checked', 'checked') 

以及

document.getElementById('MyCheckBox').checked = true; 

以及

document.getElementById('MyCheckBox').checked = 'checked'; 

*編輯 - 更新的jsfiddle版本,以顯示這四個方法

+0

所有答案都可以工作。我發現隱藏在項目的其他地方有一個ID值相同的元素。它正在檢查那一個,而另一個卻不加控制,讓我相信有什麼不對。感謝您的幫助,併爲最終愚蠢的問題感到抱歉。 –

2

嘗試$("#MyCheckBox").prop('checked', true);

我也有類似的用例,並能證明它可以檢查一個隱藏的複選框。

我認爲使用ATTR正確的做法是 $("#MyCheckBox").attr('checked', 'checked');

相關問題