Javascript 如果用户选择某些选项,则勾选复选框

Javascript 如果用户选择某些选项,则勾选复选框,javascript,html,html-lists,Javascript,Html,Html Lists,我有个问题。我想让我的javascript文件找到用户是否选择了“否”,他们是否不想要屏蔽,如果选择了“Arc”,则应勾选复选框1。同样适用于No和Ely勾号复选框4。此外,无和规格勾选复选框7。但如果他们选择“不”和“任何”,他们可以选择任何东西。我该怎么做才能做到这一点 HTML代码: <html> <head> <script type="text/javascript" src="myJavascript.js"></script> <

我有个问题。我想让我的javascript文件找到用户是否选择了“否”,他们是否不想要屏蔽,如果选择了“Arc”,则应勾选复选框1。同样适用于No和Ely勾号复选框4。此外,无和规格勾选复选框7。但如果他们选择“不”和“任何”,他们可以选择任何东西。我该怎么做才能做到这一点

HTML代码:

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

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

 <select id="chooseShield">
 <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> 
使用:


这会将处理程序附加到likeShield select的更改事件,因此每当用户更改该下拉列表中的选择时,它都会运行附加的函数。

您应该创建一个Javascript脚本内联或非内联脚本,以便能够修改/检查DOM


您的答案如下:

我会使用jQuery。结帐

在更改事件读取选定值时,比较并设置复选框

$(".conf").change(function() {
    tickBoxes();
})

function tickBoxes() {

    var likeShield = $("#likeShield").val();
    var chooseShield = $("#chooseShield").val();

    if (likeShield == 'noShield' && chooseShield == 'arc') {
        $("#cb1").prop('checked', true);
    }
}

但要实现这一点,您需要在html中添加一个表单,请参见以下链接:


好的,谢谢你的回复。你能不能用JavaScript的形式展示一下上面的内容,因为它更容易理解,谢谢;jQuery是一个JS库,它使DOM查询和事件之类的事情变得更容易。我将进行编辑来说明我的意思。你最好从头开始,先阅读一些关于js/JqueryHi eliah的文档。我编写的javascript代码,在第一篇文章中编辑是正确的,但是它不起作用。你在这里没有提供任何有用的信息。这不是答案。我们能提供的唯一信息是关于Javascript或JQUERI核心概念的文档。我确实有一个外部文件:我认为一个基本的示例是正确的。那么为什么不回答这个问题呢?如果语句有问题-例如,arc只是字符串值arc,它不会得到你期望的结果,它总是会被评估为真的。哦,我认为它得到了这个选项的值,在这种情况下,它是神秘的。您可以编辑它以便它可以工作吗?您必须这样做:if what.value==noShield&&document.getElementByIdchooseShield.value==arc{。这有意义吗?谢谢。这确实有效。但它只在您选择Arc后才有效,然后您选择No。为什么?因为您已将showTicks设置为仅在likeShield的更改事件上运行,因此该函数仅在您更改该选择时执行。如果您希望showTicks在每次选择更改上运行,则需要将其附加到更改事件上大家好,大卫。谢谢你的回复。如果使用普通JavaScript,这会不会太难?如果我使用了你的解决方案,我会使用if语句shi Pad。一般来说:只使用普通JavaScript,你可能会面临特定于浏览器的问题。这都是由jQuery处理的。代码更短更干净。一旦开始使用jQuery,你就不会t切换回来。试试看。嗨,Jai,谢谢你的回复。你能在不使用JQuery的情况下尝试一下吗?这样我就可以理解了。谢谢。就像我在第一篇文章中的版本一样。@Pat check我已经按照你的建议更新了答案,只使用javascript而不使用JQuery。
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$("#likeShield").change(function() {
   if ($("#likeShield").val() == "yesShield") {
       if ($("#chooseShield").val() == "arc") {
          $("#cb1").prop("checked", true);
       } // etc
   }
})
</script>
$(".conf").change(function() {
    tickBoxes();
})

function tickBoxes() {

    var likeShield = $("#likeShield").val();
    var chooseShield = $("#chooseShield").val();

    if (likeShield == 'noShield' && chooseShield == 'arc') {
        $("#cb1").prop('checked', true);
    }
}
var likeShield = document.getElementById('likeShield');
var chooseShield = document.getElementById('chooseShield');

function checkAll(){

  if(likeShield.value=="noShield" && chooseShield.value=="arc"){
     document.getElementById('cb1').checked =true;
     document.getElementById('cb2').checked =false;
     document.getElementById('cb3').checked =false;
     document.getElementById('cb4').checked =false;
     document.getElementById('cb5').checked =false;
     document.getElementById('cb6').checked =false;
     document.getElementById('cb7').checked =false;
  }

  if(likeShield.value=="noShield" && chooseShield.value=="ely"){
     document.getElementById('cb1').checked =false;
     document.getElementById('cb2').checked =false;
     document.getElementById('cb3').checked =false;
     document.getElementById('cb4').checked =true;
     document.getElementById('cb5').checked =false;
     document.getElementById('cb6').checked =false;
     document.getElementById('cb7').checked =false;
  }

  if(likeShield.value=="noShield" && chooseShield.value=="spec"){
     document.getElementById('cb1').checked =false;
     document.getElementById('cb2').checked =false;
     document.getElementById('cb3').checked =false;
     document.getElementById('cb4').checked =false;
     document.getElementById('cb5').checked =false;
     document.getElementById('cb6').checked =false;
     document.getElementById('cb7').checked =true;
   }
  if(likeShield.value=="noShield" && chooseShield.value=="anylist"){
     document.getElementById('cb1').checked =false;
     document.getElementById('cb2').checked =false;
     document.getElementById('cb3').checked =false;
     document.getElementById('cb4').checked =false;
     document.getElementById('cb5').checked =false;
     document.getElementById('cb6').checked =false;
     document.getElementById('cb7').checked =false;
   }

 }