我刚开始学习PHP和WAMP。在此之前,我使用HTML,CSS和JS创建了一组网页。 JS用于验证表单,如果一切顺利,它将跳转到一个将数据插入sql数据库的php页面。
简化的form.html和validation.js是:
function validation() {
var emailCheck = email.search(/^[a-zA-z0-9_]+\@[a-zA-z0-9_]+\.[a-zA-z]{2,3}$/);
if (emailCheck==-1) alert("Please enter a valid email address");
else document.getElementById("signup").action = "success.php";
}
表格代码
<form id="signup" class = "signup" method="POST">
.....
<input type="text" name="email" id="email" required/>
....
<button class = "button3" onclick = "validation()">Submit</button>
</form>
success.php只是将数据插入mySQL数据库。
现在我在不使用localhost的情况下运行form.html,javascript完美运行。如果输入错误的内容,则会显示警报窗口。
如果我使用WAMP运行localhost / form.html,当我输入错误的东西时,javascript就不起作用了。警报窗口不会显示。但是当我通过验证时,它成功跳转到success.php。
因此,我认为Javascript正在运行,但由于javascript是form.html和success.php之间的唯一连接,因此它的某些部分不起作用。
有什么想法吗?
答案 0 :(得分:0)
变量“email”未定义,因此您无法在未定义的变量上使用搜索功能。您需要先获取电子邮件值。
function validation() {
var emailCheck = document.getElementById("email").value.search(/^[a-zA-z0-9_]+\@[a-zA-z0-9_]+\.[a-zA-z]{2,3}$/);
if (emailCheck==-1) alert("Please enter a valid email address");
else document.getElementById("signup").action = "success.php";
}