javascript - 检查 IF 语句中的复选框是否已选中

标签 javascript html dom-events

我目前无法使 IF 语句正常工作,我希望用户选择屏蔽“ely”,然后选择文本框 3 或 4,然后自动勾选文本框 2。

这是我的 JavaScript 代码:

if(showShield.value == ("ely") && document.getElementById("cb3").checked = true; || document.getElementById("cb4").checked = true;)
    {
    document.getElementById("cb2").checked=true;
        }

这可能是错误的,因为它不起作用,所以我如何才能检查用户是否选择了文本框 3 或 4。

这是我的 HTML 代码:

<html>
<head>
<script type="text/javascript" src="myJavascript.js"></script>
</head>
<body>

<select id="likeShield" onchange="showTicks()">
<option value="select1">Select</option>
<option value="yesShield">Yes</option>
<option value="noShield">No</option>
</select>

<select id="showShield" onchange="showTicks()">
<option value="select1">Select</option>
<option value="arc">Arcane</option>
<option value="ely">Elysian</option>
<option value="spec">Spectral</option>
<option value="anylist">Choose any</option>
</select>

<table border = "1">
<tr>
   <th> tickbox </th>
   <th> shield parts </th>
   <th> description </th>
   <th> cost </th>
</tr>
<tr>
<td><input type="checkbox" id="cb1"></td>
   <td> arc sigil </td>
   <td> Large magic part </td>
   <td> 5m </td>
</tr>
<tr>
<td><input type="checkbox" id="cb2"></td>
   <td> arc shield </td>
   <td> A extremely powerful magic shield </td>
   <td> 60m </td>
</tr>
<tr>
   <td><input type="checkbox" id="cb3"></td>
   <td> arc special item </td>
   <td> special element </td>
   <td> 10m </td>
</tr>
<tr>
   <td><input type="checkbox" id="cb4"></td>
   <td> elysian sigil  </td>
   <td> A sigil found by dragons </td>
   <td> 50m </td>
</tr>   
<tr>
   <td><input type="checkbox" id="cb5"></td>
   <td> elysian shield </td>
   <td> A extremely powerful ranging shield </td>
   <td> 40m </td>
</tr>   
<tr>
   <td><input type="checkbox" id="cb6"></td>
   <td> elysian special item </td>
   <td> A special attack attached to shield </td>
   <td> 25m </td>
</tr>
<tr>
   <td><input type="checkbox" id="cb7"></td>
   <td> spectral sigil  </td>
   <td> easily obtainable from goblins </td>
   <td> 4m </td>
</tr>
<tr>
   <td><input type="checkbox" id="cb8"></td>
   <td> spectral shield </td>
   <td> Impressive stats </td>
   <td> 15m </td>
</tr>
<tr>
   <td><input type="checkbox" id="cb9"></td>
   <td> spectral special item </td>
   <td> Does double damage </td>
   <td> 30m </td>
</tr>
</table>
</body>
</html> 

最佳答案

if(showShield.value == "ely" && (document.getElementById("cb3").checked || document.getElementById("cb4").checked))//comparison
{
    document.getElementById("cb2").checked=true; //asignment
}
  1. Operator Precedence: &&|| 之前完成,所以你需要括号
  2. ==,而不是用于比较的=(最好是===,它不会自动转换类型并进行严格比较)<
  3. ; 是一个语句终止符,不应在语句中间使用。

关于javascript - 检查 IF 语句中的复选框是否已选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13432932/

相关文章:

javascript - React this.props 在状态事件中未定义?

jquery - DIV 向左滑动,保持在顶部并缩小到更小的宽度

c# - 编辑javascript文件后需要构建吗?

javascript - 如何从 javascript 异步函数访问返回值

javascript - 从 Rails Controller 执行 Javascript 函数(无需渲染或重新加载 View )

html - IE 中的边界半径和 RTL 问题

jquery - 选择菜单项后如何避免浏览器地址栏中出现#

javascript - 如何删除在 TypeScript 中使用 "this"的事件监听器?

javascript - 如何在 Javascript 中的粘贴事件后发出警报?

javascript - 对象是空的吗?