2014-10-16 82 views
0

我试着去控制功能的下拉菜单,规则JavaScript代码是不工作

  • 两个箱子不能同时打勾
  • 当选择了一个盒子才宜下拉可编辑否则它应该是只读
  • 下拉应该成为只读当没有被勾选
  • 当一个复选框被选中下拉应该成为可编辑的(并不重要复选框被选中)

问题是当我勾选一个方框变成可编辑的,但是当我选择第二个方框时它变为禁用,只要一个方框未被选中就勾选一个方框,下降 应该总是可编辑的这两个盒子必须取消选中)仅 则应

<html> 
<head> 
<script type="text/javascript"> 
function myFunction() { 
    if (document.getElementById("1").disabled == false) { 
      document.getElementById("10").disabled = true; 
      //set default 
      document.getElementById("10").value = "OptionOne" 
      //first drop down 
      document.getElementById("1").disabled = true; 
      //set default 
      document.getElementById("1").value = "ReasonOne"  
     } else { 
      document.getElementById("1").disabled = false; 
     } 

} 
</script> 
<script type="text/javascript"> 
var previousCheckId; 

    function toggle(chkBox) { 
     if (chkBox.checked) { 
       if (previousCheckId) { 
        document.getElementById(previousCheckId).checked = false; 
       } 
       previousCheckId = chkBox.getAttribute('id'); 
     } 
    } 
</script> 
</head> 
<body> 

    <input type="checkbox" id="chkBox100" onClick="myFunction();toggle(this);"/> 
    <input type="checkbox" id="chkBox121" onClick="myFunction();toggle(this);"/> 
    <select disabled id="1" > 
       <option value="OptionOne">First Option</option> 
       <option value="OptionTwo">Second Option</option> 
    </select> 

    <select disabled id="10" > 
       <option value="ReasonOne">First Option</option> 
       <option value="ReasonTwo">SecondOption</option> 
    </select> 
</body> 
</html> 
+2

你应该把问题的标题有点更具描述性 – LcSalazar 2014-10-16 12:38:17

回答

1

您的意思是类似的东西,或者你想单独每箱下拉菜单被禁用? 你的问题描述得很糟糕。但作为额外的信息:如果你想阅读复选框的值,你应该得到复选框的值,而不是监视选项菜单的状态!

<html> 
<head> 
<script type="text/javascript"> 
function myFunction() { 
if (document.getElementById("chkBox100").checked) { 
     //first drop down 
     document.getElementById("1").disabled = false; 
     //set default 
     document.getElementById("1").value = "ReasonOne"  
    } else { 
     document.getElementById("1").disabled = true; 
    } 

if (document.getElementById("chkBox121").checked) { 
     //second drop down 
     document.getElementById("10").disabled = false; 
     //set default 
     document.getElementById("10").value = "ReasonOne"  
    } else { 
     document.getElementById("10").disabled = true; 
    } 

} 
</script> 
<script type="text/javascript"> 
function toggle1() { 
    if (document.getElementById("chkBox100").checked) { 
     document.getElementById("chkBox121").checked = false; 
    } 

} 
     function toggle2() { 
    if (document.getElementById("chkBox121").checked) { 
     document.getElementById("chkBox100").checked = false; 
    } 

} 
</script> 
</head> 
<body> 

<input type="checkbox" id="chkBox100" onClick="toggle1();myFunction();"/> 
<input type="checkbox" id="chkBox121" onClick="toggle2();myFunction();"/> 
<select disabled id="1" > 
      <option value="OptionOne">First Option</option> 
      <option value="OptionTwo">Second Option</option> 
</select> 

<select disabled id="10" > 
      <option value="ReasonOne">First Option</option> 
      <option value="ReasonTwo">SecondOption</option> 
</select> 
</body> 
</html> 
+0

而且有人使用复选框时,您可以禁用这两个选项框和发送自定义值的原因。使用单选按钮,您始终可以选择其中一个按钮,并且必须根据选项做出决定。 – Germo 2014-10-16 13:18:40

0
<html> 
<head> 
<script type="text/javascript"> 

function myFunction() { 
    if(document.getElementById("chkBox100").checked){ 
     document.getElementById("1").disabled = false; 
     document.getElementById("10").value = "ReasonOne"; 
     document.getElementById("10").disabled = true; 
    } 
    if(document.getElementById("chkBox121").checked){ 
     document.getElementById("10").disabled = false; 
     document.getElementById("1").value = "OptionOne"; 
     document.getElementById("1").disabled = true; 
    } 
} 

</script> 
</head> 
<body> 

    <form id="radioButtons"> 
     <input type="radio" name="buttons" id="chkBox100" onClick="myFunction();"/> 
     <input type="radio" name="buttons" id="chkBox121" onClick="myFunction();"/> 
    </form> 
    <select disabled id="1" > 
     <option value="OptionOne">First Option</option> 
     <option value="OptionTwo">Second Option</option> 
    </select> 

    <select disabled id="10" > 
     <option value="ReasonOne">First Option</option> 
     <option value="ReasonTwo">SecondOption</option> 
    </select> 
</body> 

+0

上面的代码按照你的意图工作。我使用单选按钮而不是复选框,因此,这是他们的意思。一次只能选择一个单选按钮。我们只有一个函数每次都选择单选按钮,它只是检查哪个单选按钮被选中,并根据它来应用一些规则。 – frajk 2014-10-16 13:03:33

+0

如果你有问题,请告诉我,如果这回答你的问题,请不要忘记接受答案。 – frajk 2014-10-16 13:04:55