验证码在ie7中显示未定义?

时间:2013-03-19 13:08:27

标签: javascript jquery internet-explorer

我的验证码在所有浏览器中都运行正常,但它在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;  

1 个答案:

答案 0 :(得分: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/