Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么onsubmit事件处理程序不能在php解释器中工作_Javascript_Php - Fatal编程技术网

Javascript 为什么onsubmit事件处理程序不能在php解释器中工作

Javascript 为什么onsubmit事件处理程序不能在php解释器中工作,javascript,php,Javascript,Php,我正在学习PHP、MySQL和Javascript第四版,在第16章中我遇到了一个问题 Onsubmit事件处理程序在(PHP解释器)中不起作用,而没有它,它就可以正常工作。 我错过什么了吗 我删除了部分代码,只是为了显示问题 <?php echo <<<_END <!DOCTYPE html> <html> <head> <title>An E

我正在学习PHP、MySQL和Javascript第四版,在第16章中我遇到了一个问题

Onsubmit事件处理程序在
(PHP解释器)中不起作用,而没有它,它就可以正常工作。 我错过什么了吗

我删除了部分代码,只是为了显示问题

<?php
echo <<<_END
    <!DOCTYPE html>
        <html>
            <head>
                <title>An Example Form</title>
                <style>
                    .signup {
                        border:1px solid #999999;
                        font:  normal 14px helvetica;
                        color: #444444;
                    }    
                </style>
                <script>
                    function validate(form) {
                        fail  = validateForename(form.forename.value)

                        if(fail == "")   return true
                        else { alert(fail); return false }
                    }

                    function validateForename(field) {
                        return (field == "") ? "No Forename was entered.\n" : ""
                    }
                </script>
            </head>
            <body>
                <table border="0" cellpadding="2" cellspacing="5" bgcolor="#eeeeee">
                    <th colspan="2" align="center">Signup Form</th>
                    <form method="post" onsubmit="return validate(this)">
                        <tr><td>Forename</td>
                            <td><input type="text" maxlength="32" name="forename"></td>
                        </tr>
                        <tr><td colspan="2" align="center">
                            <input type="submit" value="Signup"></td>
                        </tr>
                    </form>
                </table>
            </body>
        </html>
_END;
?>

使用此代码时,javascript警报函数不会显示任何警报,即使我提交了一个空表单

以下是HTML/CSS/JS:


范例表格
.注册{
边框:1px实心#999999;
字体:普通14px直升机;
颜色:#4444;
}
函数验证(表单){
fail=validateForename(form.forename.value)
如果(fail==“”)返回true
否则{
警报(失败);
返回错误
}
}
函数验证重命名(字段){
返回(字段==“”)?“未输入名字。\n”:”
}
报名表
名字

您必须转义换行符
\n
两次,否则您的HTML输出将与预期不符:

return (field == "") ? "No Forename was entered.\\n" : ""

这是如何回答这个问题的:javascript警报函数没有显示任何警报?我的意思是,当我提交空表单时,javascript不会发出任何警报,而它必须这样做,因为只有一个反斜杠,它必须转义两次才能正确生成javascript代码。如果没有双反斜杠,
\n
会弄乱你的javascript。@Randy Casburn:我不知道你有什么问题。我测试了原始代码,但它不起作用,然后我测试了我提供的代码,它起作用了。@HappyAnt-单击OP问题中的run按钮。你的HTML/CSS/JS很好用。这可能是由
引起的,如果您允许我修改您的问题,以表明它工作正常,我会为您这样做。我如何才能允许您修改它?只是在评论中-抱歉,我不清楚。是的,正如我提到的,它工作正常,没有