Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用布尔值选中复选框_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使用布尔值选中复选框

Javascript 如何使用布尔值选中复选框,javascript,jquery,html,Javascript,Jquery,Html,因此HTML规范要求您应该向标记添加checked属性,以将其标记为checked。但是我只有一个布尔值true或false值 按照设计,在将布尔值解析为html:()之前,我不能向布尔值添加任何逻辑。 是否可以仅使用html或js选中加载时带有布尔值的复选框?我尝试了以下方法,但onload似乎没有触发: <input type="checkbox" onload="javascript:this.checked=true" /> 我正在寻找一种优雅的方法来解决它。这必须解析整个

因此HTML规范要求您应该向
标记添加
checked
属性,以将其标记为checked。但是我只有一个布尔值
true
false

按照设计,在将布尔值解析为html:()之前,我不能向布尔值添加任何逻辑。 是否可以仅使用html或js选中加载时带有布尔值的复选框?我尝试了以下方法,但
onload
似乎没有触发:

<input type="checkbox" onload="javascript:this.checked=true" />
我正在寻找一种优雅的方法来解决它。这必须解析整个DOM树,并且会降低我的页面速度


编辑(试图解释):

在我的公司中,有一个应用程序通过设计实现以下功能:

 <input type="checkbox" checked="%IsValide%" >
但是在解析为HTML之前,我不能添加逻辑,如下所示:

if(%IsValide%) {
 %IsValide%="checked";
}
else {
 %IsValide%="";
}

如果您公司的应用程序如您所见设置了
checked=“true”
checked=“false”
,这将无关紧要,因为
checked
是一个布尔属性,“此布尔属性的存在表示默认情况下选中了控件”,并且复选框将始终处于选中状态

这应该可以解决这个问题:

$('input[checked="false"]').prop('checked',false)

我认为最终你的做法是错误的,但如果我没有像你所说的那样的其他选择,我认为你最终得到的最好结果(性能方面)是在你的输入中添加一个类(正确或错误)

因为我们只搜索具有该css类的输入,所以它的性能应该非常好


但是,同样,这似乎是一个彻底的问题。如果你问“我如何使用管道胶带将发动机固定到车身上”,也许你应该停下来看看你是否应该问这个问题。:)

我在试图理解你的问题。我认为您可以通过一些简单的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对其进行更改


我的另一个猜测是您想要更改复选框的值?你是吗?在我的回答下面贴一条评论,说我不明白你在问什么。希望这有帮助!这是我的参考资料来源:

所以
对你不起作用?很抱歉,我仍然不清楚这个问题是什么。你从数据库中得到的东西都在服务器端,对吗?然后你可以使用服务器端逻辑。为什么你不能“添加逻辑”?如果你不能用JavaScript/jQuery做这样合乎逻辑的事情,为什么要用它来标记这个问题?我很想知道是什么将%IsValid%替换为true?您的服务器端语言是什么?正如我所说的,这并不完全是我要搜索的(因为需要搜索整个DOM),但当没有其他方法时,我将使用它。您所说的“搜索整个DOM”是什么意思?$('input[checked=“false”]”)这将搜索页面上的每个输入元素。因此浏览器JS引擎将遍历整个DOM树并搜索它。例如,这个
不需要在树上搜索,或者我错了吗?是的,您的内联JS示例将只在这一个元素上执行,而jQuery将选择页面上的所有输入,checked=false(但不是所有输入元素)。但是,除非你有成千上万的复选框,否则我怀疑你是否会注意到使用jQuery(或普通的JS等价物)会对性能造成影响。但是,网页上可能有多个复选框。因此,每一个都需要不同的
id
,但是
body
标记的
onload
JavaScript文本也需要不同的服务器变量标识符,比如:
“onload=document.getElementById('cb01')。checked=%IsValide1%;document.getElementById('cb02')。checked=%IsValide2%;“
,等等。谢谢,我会看一下。但是,您可以只做一个循环,创建并访问复选框。
$("input.tocheck-true").prop("checked",true);
document.getElementById("yourCheckBoxId").checked = false; //this case it sets checked to false you can also do true
<body onload='document.getElementById("yourCheckBoxId").checked = true;'>
<input type="checkbox" id="yourCheckBoxId" checked>