<html>
<script>
function validate_email(field,alerttxt)
{
with(field)
{
apos = value.indexOf("@");
dotpos = value.indexOf(".");
if (apos < 1 || dotpos - apos < 2)
{
**//alert(alerttxt);**
return false;
}
else
{
return true;
}
}
}
function validate_form(thisform)
{
with(thisform)
{
if (validate_email(email,"E-mail is valid") == false)
{ **alert(alerttxt);**
email.focus();
return false;
}
}
}
</script>
<body>
<form action = "submitpage.htm" onsubmit = "return validate_form(this)" method = "post">
E-mail:
<input type = "text" name = "email" size = "30">
<input type = "submit" value = "Submit">
</form>
</body>
</html>
按照原来的例子是在第一个函数使用alert,但是我尝试着在第二个使用alert,但是不仅不输出,验证功能也没有了。这是为什么呢?
validate_form只有一个参数,而alert使用的变量alerttxt在validate_form函数作用域内根本就不存在。
把每个阶段的console.log 看看
1)email 值
2)验证返回值
如果你的代码和上面的一模一样的话,打开你的浏览器控制台,应该会看到
Uncaught SyntaxError: Unexpected token *
把validate_form中的alert前后的星号去掉,就正确了,是能正常运行的
javascript里的注释方式是//不用加**