<form id="form1">
    <input   id="inp"   type="file">   
  <br/>   
  <input   type='button'   onclick='s();'   value='Test'>
</form>
<script   language='javascript'>   
  var   img=null;   
  function   s()   
  {   
  if(img)img.removeNode(true);   
  img=document.createElement("img");   
  img.style.position="absolute";   
  img.style.visibility="hidden";   
  img.attachEvent("onreadystatechange",orsc);   
  img.attachEvent("onerror",oe);   
  document.body.insertAdjacentElement("beforeend",img);   
  img.src=inp.value;   
  }   
  function   oe()   
  {   
  alert("cant   load   img");   
  }   
  function   orsc()   
  {   
  if(img.readyState!="complete")  return   false; 
  if (img.src.replace(/.+(\.\w+)/,   "$1")!=".gif" && img.src.replace(/.+(\.\w+)/,   "$1")!=".jpg")
  {
            alert("超格");
        return false; 
}  if (img.offsetWidth>300)
  {
            alert("超宽");
        return false; 
}
if (img.offsetHeight>150)
  {
            alert("超高");
        return false; 
}
if (img.fileSize/1024>20)
  {
            alert("超大");
        return false; 
}
  else 
            { 
                return true; 
            } 
  }   
  
  </script> 以上是我在网上摘抄的js图片验证代码,原来是没有<form id="form1"></form>标记的,可以通过测试,但当我加了<form id="form1"></form>标记后,显示网页错误,并且没有验证效果了,请高手解决!还有一个问题是:怎样将input 中的  onclick='s();' 替换成 form 中的  onSubmit="return s() ;"谢谢!

解决方案 »

  1.   

      img.src=document.getElementById("inp").value;  
      

  2.   

    input的onclick方法里面调用一下s(),查看返回值就ok了。
    if(s()){
        form1.submit();
    }
      

  3.   

    <script  language='javascript'>  
      var  img=null;  
      function  s()  
      {  
      if(img)img.removeNode(true);  
      img=document.createElement("img");  
      img.style.position="absolute";  
      img.style.visibility="hidden";  
      img.attachEvent("onreadystatechange",orsc);  
      img.attachEvent("onerror",oe);  
      document.body.insertAdjacentElement("beforeend",img);  
      img.src=document.getElementById("inp").value;  
      }  
      function  oe()  
      {  
      alert("cant  load  img");  
      }  
      function  orsc()  
      {  
      if(img.readyState!="complete")  return  false; 
      if (img.src.replace(/.+(\.\w+)/,  "$1")!=".gif" && img.src.replace(/.+(\.\w+)/,  "$1")!=".jpg") 
      { 
                alert("超格"); 
            return false; 
    }   if (img.offsetWidth>300) 
      { 
                alert("超宽"); 
            return false; 

    if (img.offsetHeight>150) 
      { 
                alert("超高"); 
            return false; 

    if (img.fileSize/1024>20) 
      { 
                alert("超大"); 
            return false; 

      else 
                { 
                    return true; 
                } 
      }  
      
      </script> <form id="form1" onSubmit="return s()" > 
        <input  id="inp"  type="file">  
      <br/> 
      <input  type='submit'  value='Test'> 
    </form> 
      

  4.   

    img.src=inp.value;
    ===>
    img.src=document.getElementById("inp").value;
      

  5.   

    谢谢xiaojing7!为何我提交此表单后出现问号?如:http://localhost/ok/WebForm.aspx?我是新手,见笑了
      

  6.   

    问号传值吗? URL可以采用?DEMO=XXX来传值