好吧,所以我試圖在代碼中以編程方式更改複選框的狀態。我已經試過:以編程方式在代碼中更改複選框的狀態
var checkbox = document.getElementById("checkbox");
// I have tried all the following methods.
checkbox.checked = false;
checkbox.selected = false;
checkbox.value = false;
好吧,所以我試圖在代碼中以編程方式更改複選框的狀態。我已經試過:以編程方式在代碼中更改複選框的狀態
var checkbox = document.getElementById("checkbox");
// I have tried all the following methods.
checkbox.checked = false;
checkbox.selected = false;
checkbox.value = false;
可能:
checkbox.checked = "checked";
然後:
checkbox.checked = "unchecked";
剛剛嘗試過,它也不行。 – Daniel 2010-03-21 21:39:18
好的。我對Dashcode沒有經驗,但它看起來像HTML。:)希望有更有經驗的人 – 2010-03-22 00:35:35
checkbox.setAttribute("checked", "checked"); // set
checkBox.removeAttribute("checked"); // remove
不是,那也行不通 – Daniel 2010-03-21 21:45:11
Dashboard構件只是WebKit的技術運行,所以代碼有效期爲Safari瀏覽器也應該是有效的在Dashcode中。以下任何一種都可以工作:
checkbox.checked = true;
checkbox.setAttribute("checked", "true");
他們不工作的事實表明您的代碼中存在其他問題。我會檢查線路
var checkbox = document.getElementById("checkbox");
正確分配給checkbox
可變的元件。此外,檢查您的「複選框」元素的ID是否有效和正確(不重複,沒有錯字等)。
是的,我認爲它可能是這樣的,但我已經四重檢查,ID是「複選框」,代碼是 checkbox = document.getElementById(「checkbox」); 我在運行時沒有收到任何錯誤。我在堆棧佈局中運行它,會改變什麼嗎? – Daniel 2010-03-21 22:26:11
這是答案,尤其是第一個版本(不需要去任何屬性)。如果設置'checked'屬性不起作用,則故障位於其他地方。 – 2010-03-22 00:22:56
我剛剛運行了一個測試,它設置了checked屬性,但是它沒有更新複選框。另外,通過一些更多的測試,最初它說被檢查的變量是未定義的。 – Daniel 2010-03-22 01:52:14
這個問題是一個月前,因爲我寫這個答案。它可能已經解決了,但無論如何我想補充一點,如果你使用的是Dashcode,複選框部分是一個包含一個標籤和一個輸入的div,這是一個「真正的」複選框。
如果您檢查HTML,因爲它在Safari中加載,您會注意到「複選框」是元素的類型。
因此,正確的方法來改變複選框會的狀態,假設「輸入」是它的ID(它可能有雖然連接默認號碼):你想使用
document.getElementById("input").checked="true";
或任何方法。
這裏的重點是你試圖改變另一個div的狀態。
希望它有幫助!
這是正確的。 OP可能試圖將父DIV元素的狀態更改爲「checked」。 – mclaughlinj 2010-08-21 09:32:01
我不知道你使用了哪個瀏覽器,但是當我在FF 3.6上測試時,它可以工作。 只是把這樣的:
checkbox.checked = false;
同時:
checkbox = document.getElementById('blablabla');
或寫這樣的
document.getElementById('idhere').checked = false;
這個問題已經存在了一段時間。無論如何,以下作品適用於我們:
checkbox.childNodes [1] .checked = true; checkBox.childNodes [1] .checked = false;
正如在前面的答案中指出的那樣,Dashcode創建這些控件的方式需要通過具有實際ID(此示例中爲複選框)的div包裝器並設置輸入屬性,即子節點1。
尋找輸入的實際'id'會有問題,因爲您無法控制分配給節點的id。例如,如果你有兩個複選框,那麼第一個將有'輸入'作爲子節點1和第二個'input1'的id,除非你的輸入源或輸入1是一個id你的設計已經!
有可能是另一種方法,但我還沒有找到它。
cell = row.insertCell(-1);
sel = document.createElement('input');
sel.setAttribute("type", "checkbox")
sel.setAttribute("name", "myCheckBox")
cell.appendChild(sel);
cell.getElementsByTagName('input')[0].checked = true;
我創建了一個表格,然後將行和單元格創建並在其中創建一個複選框。 我可以抓住第一個輸入對象並將檢查狀態設置爲true。
var checkbox = document.getElementById(「checkbox」);這行應該有問題,它應該是var checkbox = document.getElementById('#checkbox「);
你可以使用checkbox.checked = false但不要使用setAttribute('checked','checked') ,它似乎工作,但它失敗,如果你手動點擊複選框,然後嘗試檢查或取消選中使用setAttribute('checked','checked')或removeAttribute('checked') – jforjs 2016-11-30 13:13:34
引用我最近的帖子爲此,http ://jforjs.com/setattribute-removeattribute-checkbox/ – jforjs 2016-11-30 13:14:23