【发布时间】:2020-03-17 23:58:22
【问题描述】:
当复选框被选中时,我正在尝试在 ID 为“pred”的输入字段上应用css('color','red')。当前代码在检查时已成功禁用输入字段,但由于某种原因,我无法弄清楚如何在同一代码中应用样式。
我知道如何使用单独的函数来执行此操作,但我想知道如何在此代码中执行此操作并了解我做错了什么。
<div class="w3-row">
<div class="w3-col s1">
<label>Za predmet:</label>
<input class="w3-input w3-border w3-light-grey" type="text" required placeholder="Naš broj" style="width: 90%;" name="pred" id="pred" />
</div>
<div class="w3-col s3">
<div style="padding-top: 20px;">
<input class="w3-check" type="checkbox" id="predsvi" name="predsvi" value="da" onclick="var input = document.getElementById('pred'); if(this.checked){ input.disabled = true; input.css('color','red');}else{input.disabled=false; input.focus();}">
<label for="predsvi"> Sve predmete</label>
</div>
</div>
</div>
短代码:
onclick="var input = document.getElementById('pred'); if(this.checked) {
input.disabled = true;
input.css('color','red');}else{input.disabled=false; input.focus();
}
此版本的错误是 input.css 不是函数。
如果我这样做,我不会出错,但什么也没有发生。
$('pred').css('color','red')
【问题讨论】:
-
检查你的身份证,pred 不在!
-
最后一行:id="pred" ...
-
你的输入框是 pred 但你的复选框是 predsvi
-
input是一个 HTML 元素,因此没有.css方法。请改用var input = $('#pred')。您必须更改.disabled检查,但如果您使用 jQuery 对象,添加样式会更容易 -
我实际上想通了,我有另一种 !important 样式应用于该字段,为什么会失败,当我删除它时 !important 它可以工作。问题是我无法删除它,它适用于整个站点的其他输入。如果有人对此 id 有建议,不胜感激。
标签: javascript jquery html css w3-css