前端 - 为什么在javascript不同的函数之间使用alert会出现这种情况?
怪我咯
怪我咯 2017-04-10 15:09:18
0
3
363
<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,但是不仅不输出,验证功能也没有了。这是为什么呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(3)
大家讲道理

validate_form只有一个参数,而alert使用的变量alerttxt在validate_form函数作用域内根本就不存在。

小葫芦

把每个阶段的console.log 看看
1)email 值
2)验证返回值

巴扎黑

如果你的代码和上面的一模一样的话,打开你的浏览器控制台,应该会看到
Uncaught SyntaxError: Unexpected token *
把validate_form中的alert前后的星号去掉,就正确了,是能正常运行的
javascript里的注释方式是//不用加**

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿