0

我的页面上有 2 个 div,它们设置为仅在选择特定单选按钮后才可见。第一个很好,但是一旦我添加了另一个,第一个就不再起作用了。我现在处于一次只能让一个人工作的情况。我假设它必须取决于我编写脚本的方式,必须有一些东西可以告诉两者都可以工作,而不仅仅是一个或另一个。

单击单选按钮时出现的 2 个 div 是:“nterms”和“liabilityinsur”。我最初在 2 个单独的脚本中有这个(所以一个关闭的脚本标签,然后是一个打开的用于下一个),但这没有任何区别。

JSFIDDLE

这是javascript

<script>
    function unCheck(checkedObj)
    {   
        switch (checkedObj)
        {   case "individual":
               document.getElementById("process").tscs.checked=false;
               document.getElementById("nterms").style.display="block";
               break;

            case "agencyconsultant":
               document.getElementById("process").tscs.checked=true;
               document.getElementById("nterms").style.display="none";
               break;

            case "friendrelative":
               document.getElementById("process").tscs.checked=true;
               document.getElementById("nterms").style.display="none";
               break;
        }
    }

    function unCheck(checkedObj)
    {   
        switch (checkedObj)
        {   case "ownliabinsurance":
              document.getElementById("process").tscs.checked=false;
      document.getElementById("liabilityinsur").style.display="block";
              break;

            case "noliabinsurance":
              document.getElementById("process").tscs.checked=true;
      document.getElementById("liabilityinsur").style.display="none";
              break;
         }
    }
</script>  
4

2 回答 2

0

您的第二个脚本将替换您的第一个脚本,除非您重命名其中一个。这就是JS的工作原理

你的 tscs 代码也是错误的。复选框是document.getElementById("tscs")

当我现在看到您的 html 时,我决定将其更改为:

现场演示

将 3 Filling in as radios更改onclick="unCheckAs(this)为 as in

<input type="radio" id="individual" name="req_FilledInBy" value="Individual" onClick="unCheckAs(this);" <?php .... ?> />

有保险收音机onclick="unCheckIns(this)一样

<input type="radio" id="ownliabinsurance" name="req_OwnLiabilityInsurance" value="ownliabinsurance" onClick="unCheckIns(this);" <?php .... ?> />

function unCheckAs(rad) {   
  var radID = rad.id;
  var individual = radID=="individual";
  document.getElementById("tscs").checked=!individual;
  document.getElementById("nterms").style.display=(individual)?"block":"none";
}

function unCheckIns(rad) {   
  var radID = rad.id;
  var own = radID=="ownliabinsurance";
  document.getElementById("liabilityinsur").style.display=(own)?"block":"none"    
}  
于 2013-06-24T12:41:33.400 回答
0

看起来您的两个函数都具有相同的名称。这意味着第二个将取代第一个

于 2013-06-24T12:31:40.043 回答