清空文本字段会使用下拉列表触发该功能

时间:2017-04-24 19:58:10

标签: javascript

我在一个带有一个文本输入(名称搜索)和一个选择(部门过滤器)的页面上有以下内容。它们工作得很好,但是有一个独特的场景,它不是很好玩。

如果我这样做:

  1. 选择部门(例如:会计)显示部门中的所有人员
  2. 在文本输入中输入名称(例如:Deb)会缩小部门范围,只显示名为Deb的人。
  3. 按一下删除/退格键(例如:De)会将结果展开,以显示名称中包含“De”的人。
  4. 再次按删除/退格键(例如:D)会进一步展开结果,以便在名称中显示所有字母D(或d)。
  5. 再按一次会使所有结果消失!
  6. 令人沮丧。我希望它显示会计部门的所有结果,因为Name =“”和Department!=“”...请提出你的意见。

    	    <script>
    	    function showPEOPLE(str) {
    	      if (str=="") {
    	        document.getElementById("peopleResults").innerHTML="";
    	        return;
    	      } 
    	      if (window.XMLHttpRequest) {
    	        // code for IE7+, Firefox, Chrome, Opera, Safari
    	        xmlhttp=new XMLHttpRequest();
    	      } else {  // code for IE6, IE5
    	        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    	      }
    	      xmlhttp.onreadystatechange=function() {
    	        if (this.readyState==4 && this.status==200) {
    	          document.getElementById("peopleResults").innerHTML=this.responseText;
    	        }
    	      }
    		    var d = document.forms["peopleSearchForm"]["peopleSearchDept"].value;
    		    var n = document.forms["peopleSearchForm"]["peopleSearchName"].value;
    		    if ((n == "") && (d != "")) {
    			    xmlhttp.open("GET","_resources/get_people_2.php?d="+d,true);
    			    xmlhttp.send();
    		    }
    		    if ((n != "") && (d == "")) {
    			    xmlhttp.open("GET","_resources/get_people_2.php?n="+n,true);
    			    xmlhttp.send();
    		    }
    		    if ((n != "") && (d != "")) {
    			    xmlhttp.open("GET","_resources/get_people_2.php?n="+n+"&d="+d,true);
    			    xmlhttp.send();
    		    }
    	    }
    	    </script>

0 个答案:

没有答案