【发布时间】:2014-03-30 02:26:35
【问题描述】:
希望这不会像我一直认为的那么简单。单击提交时,一个简单的 HTML 论坛会调用 Javascript 进行验证,由 PHP 处理,以将已验证的信息放入 MySql 表中。我遇到的问题是,一旦我得到了 javascript 返回 true,我该如何将它拉出来以在 PHP 中使用?
论坛:
<form action="" method="post" name="register">
<div class="field">
<label for "username">Username</label>
<input type="text" name="username" id="username" value="" autocomplete="off">
</div>
<div class="field">
<label for "password">Choose a password</label>
<input type="password" name="password" id="password">
</div>
<div class="field">
<label for "password_again">Reenter Password</label>
<input type="password" name="password_again" id="password_again">
</div>
<div class="field">
<label for "name">Name</label>
<input type="text" name="name" id="name" value="" autocomplete="off">
</div>
<input type="submit" value="Register" id="submit" onclick="validate()" />
外部JS文件:
function validate() {
var password = document.register.password.value;
var passwordagain = document.register.password_again.value;
var name = document.register.username.value;
var test = new RegExp("[^a-zA-Z0-9]");
var space = String.fromCharCode(32);
if (name.match(test)) {
alert("Your name may only contain letters and numbers.");
return false;
} else if (name.match(space)) {
alert("Spaces are not allowed.");
return false;
} else if ((name.length <= 2) || (name.length >= 11)) {
alert("Name must be between 3 and 10 characters.");
return false;
} else if (!password.match(passwordagain)) {
alert("Passwords do not match");
return false;
} else if ((password.length <= 6) || (password.length >= 32)) {
alert("Password must be between 6 and 32 characters long.");
return false;
}
return true;
}
【问题讨论】:
-
无论您的表单操作指向什么,数据都将提交到哪里。如果为空,将提交到浏览器所在的页面。您可以添加 PHP 代码来处理当前页面中的 POST,或者创建一个专用的 PHP 页面来处理 POST 数据并更改表单操作。
标签: javascript php html validation