我有两个input和一个select如<input type="text" name="name" onchage="checkSelector()">
<input type="text" name="id"><select name="name_selector">
<option value="">请选择</option>
<option value="1">丁某</option>
<option value="2">贾某</option>
</select>当第一个input值发生变化时,检查第一个input的值是否在select中,如果不在,则把第二个input的值改为空,select 恢复到第一个选项。如 第一个input 由 贾某 变化为 乙某,而 乙某 不在 丁某和贾某 中,所以 select 要恢复到 请选择 上,第二个input值要变为空。求checkSelector()的js写法

解决方案 »

  1.   

    看一下 onchange事件和 onpropertychange事件,百度。
      

  2.   

    <input type="text" name="name" onchage="checkSelector()"> 改为 <input type="text" name="name" onchage="checkSelector(this)"> function checkSelector(obj) {
       var o = document.getElementsByName("select").name_selector;
       for(var i = 0; i < o.options.length; i++) {
         if(obj.value == o.options[i].text) {
           o.value = o.options[i].value;
           return ;
         }
       }   o.value = "";
       document.getElementsByName["input"].id.value = "";
    }程序没有测试,你先试试先。
      

  3.   


    <script>
    function checkSelector(){
      var f = document.forms[0];
      var v = f.elements["name"].value;
      var sel = f.name_selector;
      var b = false;
      for(var i=0;i<sel.options.length;i++){
        if(sel.options[i].text==v){sel.options[i].selected = true;b=true;break;}
      }
      if(!b){
        f.elements["id"].value="";
        sel.options[0].selected = true;
      }
    }
    </script><form>
    <input type="text" name="name" onchange="checkSelector()"> 
    <input type="text" name="id"> <select name="name_selector"> 
    <option value="">请选择</option> 
    <option value="1">丁某</option> 
    <option value="2">贾某</option> 
    </select>   
    </form>
      

  4.   

    这个是测试通过的代码了。
    <html>
    <body>
    <input type="text" name="name" onchange="checkSelector(this)">
    <input type="text" name="id"><select name="name_selector">
    <option value="">请选择 </option>
    <option value="1">丁某 </option>
    <option value="2">贾某 </option>
    </select><script type="text/javascript">
    function checkSelector(obj) { 
            var o = document.getElementsByName("name_selector")[0]; 
            for(var i = 0; i < o.options.length; i++) { 
                    if(obj.value == o.options[i].text) { 
                            o.value = o.options[i].value; return ; 
                    } 
            } 
            o.value = "";         document.getElementsByName["name"][0].value = ""; 

    </script>
    </body>
    </html>