为什么我的代码会收到以下错误?
第32行,第14列:字符“<”是分隔符的第一个字符,但是作为数据出现
for(i=0; i <= length; i++) {
在以下几种情况下可能会出现此消息:
你试图加入“&lt;”页面中的字符:你应该将其转义为“&lt;” 您使用了未转义的&符号“&amp;”:这在某些情况下可能有效,但建议使用“&amp;”,这始终是安全的。 另一种可能性是您忘记关闭先前标记中的引号。 第32行,第14列:StartTag:无效的元素名称
for(i=0; i <= length; i++) {
代码:
<script type="javascript">
function randomRange(minVal,maxVal)
{
var randVal = minVal+(Math.random()*(maxVal-minVal));
return (Math.floor(randVal));
}
function GetCaptcha() {
var encStr = "123456789ABCDEFGHJKMNPQRSTUVWXYZ";
var length = randomRange(4,8);
var result = "";
var i = "";
var char = "";
for(i=0; i <= length; i++) {
char = encStr.substr(randomRange(1,encStr.length),1);
result += char;
}
return result;
}
function InitCaptcha() {
var hidFld = document.MyForm.captchaHidFld;
str = GetCaptcha();
hidFld.value = str;
document.getElementById('captchaTxt').innerHTML = str;
document.getElementById('captchaBtn').value = str;
}
function ValidateCaptcha (theForm) {
var inpStr = (document.MyForm.captchaInpFld.value).toUpperCase();
var captStr = document.MyForm.captchaHidFld.value;
if (inpStr.length == captStr.length)
{
if (inpStr.match(captStr)) { return true; }
}
return false;
}
function cmdSubmit(theForm)
{
if (!ValidateCaptcha(theForm))
{
alert ("Please enter valid CAPTCHA Code.");
return false;
}
if (theForm.name.value == "")
{
alert ("Please enter your name.");
theForm.name.focus();
return false;
}
if (theForm.email.value == "")
{
alert ("Please enter your e-mail address.");
theForm.email.focus();
return false;
}
return true;
}
</script>
答案 0 :(得分:4)
使用过渡的XHTML DOCTYPE,你需要像这样包含内联的Javascript和CSS:
<script type="text/javascript">
//<![CDATA[
/* script here */
//]]>
</script>
比较这些结果:
答案 1 :(得分:0)
你用什么来验证这个?你总是可以将javascript作为外部javascript文件来解决这个问题吗?
另外:确保脚本标记位于<head>
或<body>
元素内?
答案 2 :(得分:0)
您的代码看起来是正确的。如果您使用firebug部分地编写代码,即GetCaptcha(),您将能够快速跟踪错误。 或发布与此代码相关的HTML :)