[英]why onsubmit event handler is not working in php interpreter
我正在閱讀學習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警報功能也不會顯示任何警報。
這只是HTML / CSS / JS:
<!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>
您必須兩次對換行符\\n
進行轉義,否則HTML輸出將不符合預期:
return (field == "") ? "No Forename was entered.\\n" : ""
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.