问题描述
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.org//TR/xhtml11/DTD/XHTML11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>验证码</title><script language="javascript" type="text/javascript"> var code ; //在全局 定义验证码 function createCode(){ code = new Array(); var codeLength = 4;//验证码的长度 var checkCode = document.getElementById("checkCode"); checkCode.value = ""; var selectChar = new Array(2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z'); for(var i=0;i<codeLength;i++) { var charIndex = Math.floor(Math.random()*32); code +=selectChar[charIndex]; } if(code.length != codeLength){ createCode(); } checkCode.value = code; } function validate () { var inputCode = document.getElementById("input1").value.toUpperCase(); if(inputCode.length <=0) { alert("请输入验证码!"); return false; } else if(inputCode != code ){ alert("验证码输入错误!"); createCode(); return false; } else { alert("成功!"); return true; } } </script> </head><body onload="createCode()"><p>用户名:<input id="usernmae" name="username" ></p>请输入密码:<input id="input1"><input type="image" id="checkCode" border=1 onsubmit="validate()"><a href="javascript:void(0)" onclick="createCode();">看不清</a><p><input type="submit" onclick="validate();" value="提交"></body></html>
解决方案
这就牵涉到input type="image"在IE下和在火狐下的不同了。IE下:input type="image" 相当于input type="submit" 不同的是,input type=image 以一个图片作为表单的提交按钮,其中 src 属性表示图片的路径(不认value属性)。firefox下:input type="image"相当于input type="submit",认可value属性。