【发布时间】:2020-05-11 09:15:30
【问题描述】:
我有一个关于 onclick 操作的问题。
点击“all”复选框后,<select>被屏蔽,但没有“cl”被取消选中。
<form>
<input type="checkbox" class="custom-control-input" id="all" name="all" onclick="this.form.elements['oh'].disabled = this.form.elements['cl'].removeAttr('checked') = this.checked">
<select id="oh" name="oh">
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">oprion 3</option>
</select>
<input type="checkbox" id="cl" name="cl">
</form>
【问题讨论】:
-
最好的to avoid inline handlers,他们有一个疯狂的范围链,需要全局污染,并且存在引用转义问题。请改用
addEventListener -
我给你做了一个sn-p。请修复控制台错误 - 我用表单标签包裹以消除一个错误 - 您正在将 jQuery 函数混合到 DOM 编码中。
this不是 jQuery 对象 -
正在进行很多如意的编码。请描述您希望发生的事情,而不是发布 X/Y 问题
-
你不能分配给
.removeAttr('checked') -
请同时检查您的浏览器控制台是否有错误。这些天的浏览器会隐藏错误,除非您有第 3 方扩展。 "but no "cl" is unchecked" - 但是控制台中有一个错误向您解释了这个问题(可能还不是您完全理解的方式,但它已经在那里解释了 - 所以应该是问“为什么我会得到”removeAttr is not a function”,而不是问为什么它“什么都不做”(释义)。
标签: javascript jquery checkbox checked