function changeQuery(elem){
  var val = elem.value;
  if(parseInt(val)==4){
  document.getElementById("Pr_name").style.display ="none";
  document.getElementById("datetime").style.display ="block";
  }
}
<select id="xuanze" onChange="changeQuery();">
<input id="Pr_name" type="text" size="12">

解决方案 »

  1.   

    function changeQuery() {
      var obj = event.srcElement;
      var form = obj.form;
      if (obj.options[obj.selectedIndex].value == "4") {
      document.getElementById('Pr_name').style.display = "none";
      document.getElementById('datetime').style.display = "";
      } else {
      document.getElementById('Pr_name').style.display = "";
      document.getElementById('datetime').style.display= "none";
      }
    }
      

  2.   

    因为form.Pr_name.parentNode拿到得节点是form,form.Pr_name.parentNode.style.display = "none"让整个form.display=none,所以全部隐藏了。
    如果要当下拉列表值为4的时候隐藏Pr_name输入框,显示id=datetime的div层该如何做? 
    function changeQuery() {
        var obj = event.srcElement;
        var form = obj.form;
        if (obj.options[obj.selectedIndex].value == "4") {
            form.Pr_name.style.display = "none";
            form.datetime.style.display = "block";
        } else {
            form.Pr_name.style.display = "block";
            form.datetime.style.display= "none";
        }
    }
      

  3.   


    <script language="javascript">
    <!--
    function changeQuery() {
        var obj = event.srcElement;
        var form = obj.form;
        if (obj.options[obj.selectedIndex].value == "4") {
        alert(form.Pr_name.parentNode.tagName)
    //        form.Pr_name.parentNode.style.display = "none";
            form.Pr_name.style.display = "none";
            datetime.style.display = "block";
        } else {
            form.Pr_name.style.display = "block";
            datetime.style.display= "none";
        }
    }//-->
    </script>