function validate(id){
      var temp=document.addForm.id.value;
      window.alert(temp);
      if(temp==""){
         window.alert("不能为空");
      }
   }通过onblur把text的name传进去但是。为什么temp不能取得值

解决方案 »

  1.   


    <script> 
    function validate(id){ 
          var temp=document.addForm.elements[id].value; 
          window.alert(temp); 
          if(temp==""){ 
            window.alert("不能为空"); 
          } 
      } 
    </script> 
    <form name="addForm">
    <input type="text" name="xx" onblur="validate(this.name)">
    </form>
      

  2.   


    <script> 
    function validate(s){ 
          if(s==""){ 
            window.alert("不能为空"); 
          } 
      } 
    </script> 
    <form name="addForm">
        <input type="text" name="xx" onblur="validate(this.value)">
    </form>
      

  3.   

    <script> 
    function validate(id){ 
          var temp=document.addForm.elements[id].value; //document.getElementById(id).value;换成这句也可以
          window.alert(temp); 
          if(temp==""){ 
            window.alert("不能为空"); 
          } 
      } 
    </script> 
    <form name="addForm">
        <input type="text" name="xx" onblur="validate(this.name)">
    </form>这样就可以了,因为你传进来的参数为字符串,
      

  4.   

    三楼说过,参数是一个object,方法中不能直接做为属性。可以采用2楼的方法。或者字符串气拼接,temp=eval(str);
      

  5.   

    function validate(id){
          var temp=eval("document.addForm." + id + ".value");
          window.alert(temp);
          if(temp==""){
            window.alert("不能为空");
          }
      }