Javascript 验证码在ie7中显示未定义?
我的验证码在所有浏览器中都运行良好,但在ie7中显示错误 这是小提琴: 这是我的密码:Javascript 验证码在ie7中显示未定义?,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,我的验证码在所有浏览器中都运行良好,但在ie7中显示错误 这是小提琴: 这是我的密码: function randomString(length, chars) { var result = ''; for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; return result; } var code= randomStr
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
return result;
}
var code= randomString(5,'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
document.getElementById("txtCaptcha").value = code;
document.getElementById("txtCaptchaDiv").innerHTML = code;
问题在于,internet explorer不支持类似数组的字符串操作,您应该编写以下代码:
result += chars.charAt(index);
因此,这条线最终应该是:
result += chars.charAt(Math.round(Math.random() * (chars.length - 1)));
例如:您希望我这样添加吗??结果+=chars.charAt([Math.round(Math.random()*(chars.length-1)))<代码>结果+=chars.charAt(Math.round(Math.random()*(chars.length-1))代码>您到底有什么错误消息?可能您正在立即运行javascript代码,而不等待页面加载,因此getElementById失败,因为相应的元素尚未加载。让我们检查一下它的工作情况..我上载了错误的文件。我的不好..谢谢,请确保
Math.random()
提供了正确的索引。有一个警报,你会看到,因为你将只有5个警报。它在所有其他浏览器中工作良好,所以math.random给出了适当的索引…我特别告诉你IE7。当你在IE7中执行时,你会看到一个警报,为什么我们要用JavaScript生成验证码?这有什么作用?
result += chars.charAt(Math.round(Math.random() * (chars.length - 1)));