[英]How to check a checkbox with boolean values
因此,HTML規范要求您應將一個checked
屬性添加到<input type="checkbox">
標記中,以將其標記為選中狀態。 但是我只有一個布爾值true
或false
。
按照設計,我無法在布爾值解析為html之前添加任何邏輯:(。是否可以僅使用html或js檢查加載時具有布爾值的Checkbox?我嘗試了以下操作,但是onload
似乎不會觸發:
<input type="checkbox" onload="javascript:this.checked=true" />
我知道我可以在jQuery中執行以下操作:
$("[checked='false']").prop('checked',false)
我正在尋找一種解決問題的優雅方法。 這必須解析整個DOM-Tree,並且會減慢我的頁面的速度。
編輯(試圖解釋):
在我的公司中,有一個應用程序按設計執行以下操作:
<input type="checkbox" checked="%IsValide%" >
然后,服務器會自動用數據庫值替換%IsValide%
var。 這里是對還是錯。 但是,即使該值為false,也始終選中該復選框。 我知道這是由於html5的設計引起的:checked =“ true”和checked =“ false”會將復選框始終標記為已選中。
現在,我正在尋找一種解決方案,以使用%IsValide%
的true或false值來使用javascript(或什至更好的是使用html)正確選中該框。 我可以在html標記的任何位置使用%IsValide%
。 例如:
<input type="checkbox" onload="javascript:this.checked=%IsValide%" />
但是我無法在將其解析為HTML之前添加邏輯,如下所示:
if(%IsValide%) {
%IsValide%="checked";
}
else {
%IsValide%="";
}
我想了解您的要求。 我認為您可以使用一些簡單的javascript完成它:
document.getElementById("yourCheckBoxId").checked = false; //this case it sets checked to false you can also do true
在頁面加載時進行檢查:
<body onload='document.getElementById("yourCheckBoxId").checked = true;'>
或避免body的onload屬性進行檢查:
<input type="checkbox" id="yourCheckBoxId" checked>
然后,您只需使用javascript進行更改即可。
我的另一個猜測是您要更改復選框的值嗎? 你是? 在我的答案下方發表評論,說我不明白您的要求。 希望這可以幫助! 這是我的參考來源: http : //www.w3schools.com/jsref/prop_checkbox_checked.asp
如您所見,如果您公司的應用程序設置了checked="true"
或checked="false"
,那么這將無關緊要,因為checked
是一個布爾屬性,並且“此布爾屬性的存在指示默認情況下該控件處於選中狀態”,並且該復選框將始終處於選中狀態。
這應該解決它:
$('input[checked="false"]').prop('checked',false)
我認為最終您會以錯誤的方式進行操作,但是,如果您沒有像我所說的那樣沒有其他選擇 ,那么我認為最終(在性能方面)最好的做法是在輸入中添加一個類(對或錯)
<input type="checkbox" class="tocheck-true"></input>
<input type="checkbox" class="tocheck-false"></input>
然后查找該類:
$("input.tocheck-true").prop("checked",true);
因為我們僅在搜索具有該CSS類的輸入,所以這應該表現得很好。
但是,再次,這似乎是一個完整的hack。 如果您問“如何使用膠帶將發動機固定到汽車車身上”,也許您應該停下來看看是否應該問這個問題。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.