2013-07-03 114 views
0

我有一个包含7个下拉列表的PHP表单。当从其中一个选择一个值时,如果它们之前打开,我希望其他6返回到它们的默认值。我认为它应该使用JavaScript,但我现在不写这样的脚本。我猜这个下拉列表中的每一个都必须有一个ID,当我从7个选项中选择一个选项时,JavaScript应该识别该ID并将其他设置为默认值。我尝试使用与document.getElementsByName('id')的JavaScript,但它不起作用。从下拉列表中选择一个值时,将其他下拉列表设置为默认值

<form id="form1" name="form1" method="post" action=""> 
<select name="select" size="1" id="1"> 
    <option value="0" selected="selected">please select</option> 
    <option value="1">blue</option> 
    <option value="2">green</option> 
    <option value="3">red</option> 
</select> 
<br /> 
<select name="select2" size="1" id="2"> 
    <option value="0" selected="selected">please select</option> 
    <option value="1">intel</option> 
    <option value="2">amd</option> 
</select> 
<br /> 
<select name="select3" size="1" id="3"> 
    <option value="0" selected="selected">please select</option> 
    <option value="1">fish</option> 
    <option value="2">car</option> 
    <option value="3">table</option> 
</select> 
<br /> 
<select name="select4" size="1" id="4"> 
    <option value="0" selected="selected">please select</option> 
    <option value="1">lcd</option> 
    <option value="2">led</option> 
</select> 
</form> 

这是我的形式。 举例来说,我从第二个下拉列表“intel”中选择一个值。在此之后,我从第三个下拉列表中选择一个值“table”。我需要做的是从第三个下拉列表中选择第二个返回到“请选择”。 ideea是使用JavaScript我不希望那些使用表单的人一次选择多个下拉列表。 他们应该能够看到每个打开下拉列表的值,但是如果他们打开另一个值,则以前必须返回到“请选择”的selected =“selected”选项。

谢谢。

+0

你的意思是你想使用选择的值作为其他下拉列表中选择值之后更新解决之道? –

+0

没有。我编辑问题以获得更好的解释。 – user2545307

回答

0

这是一个开始的想法。考虑像这样2下拉。

<select id="Numeric"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

<select id="Alphabets"> 
    <option value="A">A</option> 
    <option value="B">B</option> 
    <option value="C">C</option> 
</select> 

基于1下拉i的值我选择第二个下拉

var val = document.getElementById("Numeric").value; 
var obj = document.getElementById("Alphabets"); 


if(val == "1") obj.value = "A" 
else if(val == "2") obj.value = "B" 
else if(val == "3") obj.value = "C" 

交换机是越多越好

switch(val) 
{ 
    case("1"): 
     obj.value = "A"; 
    break; 

    case("2"): 
     obj.value = "B"; 
    break; 

    case("3"): 
     obj.value = "C"; 
    break; 
} 

这是很基本的Starup想法。您需要实现良好的逻辑你需要的功能

评论

<html> 
<head> 
    <script type="text/javascript"> 
    function handleSelect(thisObj){ 
      var list = document.getElementsByTagName("SELECT") 

      for(var i=0; i< list.length; i++) 
     {  
      if(list[i] ==thisObj) continue; 
      list[i].value = "0"; 
     } 
    } 
    </script> 
</head> 
<body> 
     <form id="form1" name="form1" method="post" action=""> 
      <select name="select" size="1" id="1" onchange="handleSelect(this)"> 
       <option value="0" selected="selected">please select</option> 
       <option value="1">blue</option> 
       <option value="2">green</option> 
       <option value="3">red</option> 
      </select> 
    <br /> 
      <select name="select2" size="1" id="2" onchange="handleSelect(this)"> 
       <option value="0" selected="selected">please select</option> 
       <option value="1">intel</option> 
       <option value="2">amd</option> 
      </select> 
    <br /> 
      <select name="select3" size="1" id="3" onchange="handleSelect(this)"> 
       <option value="0" selected="selected">please select</option> 
       <option value="1">fish</option> 
       <option value="2">car</option> 
       <option value="3">table</option> 
      </select> 
    <br /> 
      <select name="select4" size="1" id="4" onchange="handleSelect(this)"> 
       <option value="0" selected="selected">please select</option> 
       <option value="1">lcd</option> 
       <option value="2">led</option> 
      </select> 
     </form> 
    </body> 
</html> 
+0

请帮帮我。我编辑了更精确的问题 – user2545307

+0

您是否希望系统一次只允许选择一个下拉列表?你需要这个吗? – DON

+0

是的。这是我需要的。 – user2545307

相关问题