不让他输入,只能选择就肯定是有效的,至于必须是图片,只要在提交的时候判断下file的value是不是以图片后缀结尾就可以了
<input name=file1 type="file" onkeydown="return false" onpaste="return false" ondragenter="return false">

解决方案 »

  1.   

    <input name=file1 type="file"  onkeydown="return false" onpaste="return false" ondragenter="return false">
    <input name="button1" type="button" onclick="check()" value="click"><script language=javascript>
    function check()
    {
    var re=/\.(gif|jpg)$/i
    if(re.test(document.getElementById("file1").value))
    {
    alert("有效")
    }
    else
    {
    alert("无效")
    }
    }

    </script>
      

  2.   

    to lantersen(蓝水仁~) 
    客户端的验证都是不准确的,如果伪造HTTP头那验证将没有,服务器端的验证必不可少,但是客户端的验证也要有,可以减少交互次数,节省服务器资源
      

  3.   

    如果用户有意改文件后缀————————————
    这点比较重要,不知道js中new 一个image对象,如果不是img类型的,会不会捕捉到异常
      

  4.   

    <input name=file1 type="file" onpropertychange=check() onkeydown="return false" onpaste="return false" ondragenter="return false">
    <input name="button1" type="button" onclick="show()" value="click">
    <img name="img1" style="display:none" >
    <script language=javascript>
    function check()
    {
    var str=document.getElementById("file1").value
    var obj=document.getElementById("img1")
    obj.src=str
    }
    function show()
    {
    if(document.getElementById("img1").fileSize==-1)
    {
    alert("选择的文件类型不对")
    }
    }
    </script>