Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证码在ie7中显示未定义?_Javascript_Jquery_Internet Explorer - Fatal编程技术网

Javascript 验证码在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

我的验证码在所有浏览器中都运行良好,但在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= 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)));