【发布时间】:2014-12-03 09:09:07
【问题描述】:
我有一个带有 onsubmit = "return validateForm()" 的简单 html 注册表单,其中 validateForm() 是 javascript,以确保输入格式正确,并且电子邮件和密码字段与其确认字段匹配。
表单操作设置为 add.php。 add.php 将输入添加到 mysql 数据库中。 javascript 和 php 都可以正常工作,但是即使 javascript 会警告诸如“密码太短”之类的错误。无论如何都会运行 php 脚本,并在数据库中创建一个新条目。
我希望 php 脚本仅在成功的 javascript 验证后运行,并且如果任何验证失败,用户仍留在同一页面上,这是如何完成的?
如果需要,我可以添加代码,但我认为这里的答案是通用的。
编辑:
例如这里是验证名称字段的代码:
function checkName()
{
var fName = document.getElementById("firstName");
var lName = document.getElementById("lastName");
if (fName.value.length >= 2 && fName.value.match(/^[A-Za-z]+$/) && lName.value.length >= 2 && lName.value.match(/^[A-Za-z]+$/))
{
return true;
}
else
{
return false;
}
}
function validateForm(){
if (checkName() == false)
{
alert("First and Last Name must be at least 2 characters long and contain only alphabetic characters");
document.getElementById("fName").focus();
document.getElementById("fName").select();
return false;
}
}
【问题讨论】:
-
有
validateForm()在错误时返回 false。此外,在进行插入之前,您也应该在 php 中验证这些内容,因为绕过 javascript 验证非常容易。 -
这只是一个学校作业,安全无关。我的 validateForm() 也确实在失败时返回 false。我将使用示例函数编辑原始帖子。
-
如果你使用 onclick="return validateForm()" 调用你的函数,它应该像 jKuhn 指出的那样阻止表单提交
标签: javascript php html mysql