如何在javascript验证失败时不运行php脚本?
我有一个带有onsubmit=“return validateForm()”的简单html注册表单,其中validateForm()是javascript,以确保输入格式正确,并且电子邮件和密码字段与确认字段匹配 表单操作设置为add.php。php将输入添加到mysql数据库中。javascript和php都可以很好地工作,但即使javascript发出“密码太短”之类的错误警报,php脚本也会运行,并在数据库中创建一个新条目 我希望php脚本只在javascript验证成功后运行,如果任何验证失败,用户将保持在同一页面上,这是如何完成的 如果需要,我可以添加代码,但我认为这里的答案是通用的 编辑: 例如,下面是验证名称字段的代码:如何在javascript验证失败时不运行php脚本?,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我有一个带有onsubmit=“return validateForm()”的简单html注册表单,其中validateForm()是javascript,以确保输入格式正确,并且电子邮件和密码字段与确认字段匹配 表单操作设置为add.php。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;
}
}是
名还是fName
?如果fName
ID不存在,函数将出现错误并退出,而不返回任何内容,导致警报显示,但表单仍将提交。havevalidateForm()
return false on error。此外,在进行插入之前,您也应该在php中验证这些内容,因为绕过javascript验证非常容易。这只是一个学校作业,安全性不重要。此外,我的validateForm()在失败时也会返回false。我将用一个示例函数编辑原始帖子。如果使用onclick=“return validateForm()”调用函数,它将阻止表单提交,正如jKuhn指出的那样,id是firstName,我刚刚调用了变量fName。那不要紧,是吗?我发现我的focus()和select()使用了错误的id,但我将它们修复为不成功。getElementById
的参数必须与元素的id完全匹配,而不是变量。是的,元素的id为firstName和lastName。不过,我确实做了,只是将每个实例(包括var名称)都更改为firstName和lastName,它似乎可以工作。我不明白为什么如果我想的话我可以调用var poopmonkey,对吗?如果在浏览器控制台中运行这两行会发生什么?某个原因导致警报和返回之间出现错误。