3

我的验证码在所有浏览器中都可以正常工作,但在 ie7 中显示错误。

这是小提琴:http: //jsfiddle.net/KMupW/4/

这是我的代码:

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;  
4

1 回答 1

2
result += chars[index];

问题就在这里,Internet Explorer 不支持像数组这样的字符串操作,你应该这样写:

result += chars.charAt(index);

所以这条线最终应该是:

result += chars.charAt(Math.round(Math.random() * (chars.length - 1)));

一个例子:http: //jsfiddle.net/XDxR7/2/

于 2013-03-19T13:10:34.930 回答