2014-10-16 108 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