尝试在表单上运行一些Javascript验证,但没有任何工作。应发出警报,阻止用户继续预订座位,但他们可以自由继续。我不确定我做错了什么,但看起来很基本。
如果有人可以查看我的代码,我将不胜感激。
文字输入表格>>>
<form method="POST" name="Customer_Details" action="Ice Cream.php">
<h3> Full Name </h3>
<p> Name - Full Name. </p>
<input type="text" name="Name" oninput="nameCheck();" />
<h3> Email Address </h3>
<p> Email here please </p>
<input type="text" name="Email" oninput="return(validateEmail());" />
<input type="submit" name="submit" value="Book Tickets">
</form>
用于validateEmail()的Javascript;
var email = document.Customer_Details.Email;
function validateEmail(email)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(email.value.match(mailformat))
{
return true;
}
else
{
alert("You have entered an invalid email address. Please try again!");
email.focus();
return false;
}
}
答案 0 :(得分:0)
您的var电子邮件不是验证电子邮件功能的参数。 此函数不需要任何参数:
function validateEmail()
{
email = document.Customer_Details.Email;
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(email.value.match(mailformat))
{
return true;
}
else
{
alert("You have entered an invalid email address. Please try again!");
email.focus();
return false;
}
}
(但使用oniput会使输入电子邮件变得困难......)
答案 1 :(得分:0)
我认为你的问题是你的javascript验证是在错误的地方调用的。在提交表单时应该调用它。
此代码在我测试时有效:
HTML:
<form method="POST" name="Customer_Details" action="Ice Cream.php" onsubmit="return validateEmail()">
<h3> Full Name </h3>
<p> Name - Full Name. </p>
<input type="text" name="Name">
<h3> Email Address </h3>
<p> Email here please </p>
<input type="text" name="Email">
<input type="submit" name="submit" value="Book Tickets">
</form>
JS:
function validateEmail() {
var email = document.Customer_Details.Email;
if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value)) {
alert("You have entered an invalid email address");
email.focus();
return false;
} else {
return true;
}
}