为什么 onsubmit 事件处理程序在 php 解释器中不起作用

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


Onsubmit 事件处理程序在<?php ... ?>(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 警报功能也不会显示任何警报。


倚天杖
浏览 177回答 1
1回答

茅侃侃

您必须将换行符转义\n两次,否则您的 HTML 输出将不会像预期的那样:return&nbsp;(field&nbsp;==&nbsp;"")&nbsp;?&nbsp;"No&nbsp;Forename&nbsp;was&nbsp;entered.\\n"&nbsp;:&nbsp;""
打开App,查看更多内容
随时随地看视频慕课网APP