PHP JavaScript 验证错误
PHP JavaScript Validation Error
我以为我已经解决了这个问题,但我的问题仍在发生。
每次我单击发送时,我的表单仍然发送。 我以为我的 JavaScript 正确验证了表单,但它不起作用,因为我可以在电子邮件字段中放置任何东西,并且它仍然可以处理。 警报仍然有效。 我只想使用PHP和JavaScript,没有AJAX或任何东西。 这是我的代码:
<?php
$to = 'email@email.com';
$subject = 'Voice4Autism Inquiry';
$FirstName = $_POST['fname'];
$LastName = $_POST['lname'];
$eMail = $_POST['email'];
$message = <<<EMAIL
Hi!<br /><br/>
My name is $FirstName $LastName. I am interseted in your newsletter from Voice4Autism. Please add $eMail to your listserve.<br /><br />
Thank you,<br />
$FirstName $LastName
EMAIL;
$header = "From: $eMail'r'n";
$header = "Content-type: text/html'r'n";
if($_POST){
mail($to, $subject, $message, $header);
}
?>
JAVASCRIPT
<script type="text/javascript">
function checkforblank() {
var errormessage = "";
if (document.getElementById('fname').value ==""){
errormessage += "enter your first name 'n";
}
if (document.getElementById('lname').value ==""){
errormessage += "enter your last name 'n";
}
if (document.getElementById('email').value ==""){
errormessage += "enter your email 'n";
}
if (document.getElementById('confirmEmail').value ==""){
errormessage += "confirm your email 'n";
}
if (errormessage != ""){
alert(errormessage);
return false;
} else return true;
}
function verifyEmail() {
var status = false;
var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+'.[A-Z]{2,4}$/i;
if (document.myForm.email.value.search(emailRegEx) == -1) {
alert("Please enter a valid email address.");
return false;
}
if (document.getElementById('email').value == document.getElementById('confirmEmail').value) {
alert("Thank you for your interest!");
return true;
} else {
alert("Email addresses do not match. Please retype them to make sure they are the same.");
return false;
}
return status;
}
function confirmEmailAddresses(){
if (checkforblank() == true) {
if (verifyEmail() == true) {
document.getElementById("myForm").submit();
}
}
}
</script>
.HTML
<form name="myForm" action="contact.php" method="post" enctype="application/x-www-form-urlencoded" onsubmit="">
<table width="377" height="96" align="center">
<tr>
<td style="text-align: right">First Name:</td>
<td><label for="FirstName"></label>
<input type="text" name="fname" id="fname"></td>
</tr>
<tr>
<td style="text-align: right">Last Name:</td>
<td><label for="LastName"></label>
<input type="text" name="lname" id="lname"></td>
</tr>
<tr>
<td style="text-align: right">E-mail:</td>
<td><input type="email" name="email" id="email"></td>
</tr>
<tr>
<td style="text-align: right">Confirm E-mail:</td>
<td><input type="email" name="confirmEmail" id="confirmEmail"></td>
</tr>
</table>
<p align="center"><input type="submit" value="Send" onClick="confirmEmailAddresses()"><input type="reset" value="Reset Form"></p>
</form>
我想
这就是你要找的:
<script>
function checkforblank() {
var errormessage = "";
if (document.getElementById('fname').value ===""){
errormessage += "enter your first name 'n";
}
if (document.getElementById('lname').value ===""){
errormessage += "enter your last name 'n";
}
if (document.getElementById('email').value ===""){
errormessage += "enter your email 'n";
}
if (document.getElementById('confirmEmail').value ===""){
errormessage += "confirm your email 'n";
}
if (errormessage !== ""){
alert(errormessage);
return false;
}
else{return true;}
}
function verifyEmail() {
var status = false;
var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+'.[A-Z]{2,4}$/i;
var email_reg = document.getElementById('email').value;
if (!email_reg.match(emailRegEx)) {
alert("Please enter a valid email address.");
return false;
}
else if (document.getElementById('email').value !== document.getElementById('confirmEmail').value) {
alert("Email addresses do not match. Please retype them to make sure they are the same.");
status = false;
} else {
alert("Thank you for your interest!");
status = true;
}
return status;
}
function confirmEmailAddresses(){
if((checkforblank())&&(verifyEmail())){return true;}else{return false;}
}
并像这样调用此函数:
<form name="a" method="post" onSubmit="return confirmEmailAddresses()" action="xyz.html" id="a">
尝试从提交按钮中删除onClick
事件,并将return confirmEmailAddresses();
添加到主表单元素的onsubmit
事件中。
如果验证通过,请确保 confirmEmailAddresses()
函数具有行return true;
!否则return false;
.
你可以试试
return false;
在每次 alert() 调用之后。
这不是你想要的吗?如果表单无效,您希望显示警报而不提交表单,对吗?
查看您调用 confirmEmailAddresses() 的 html 表单可能会有所帮助
相关文章:
- 为什么jasmine期望不验证是否抛出了错误
- jQuery在输入下验证post错误消息
- JavaScript表单验证-“;“错误”;不按需要工作
- 当与Dojo验证一起使用时,Chrome 41密码保存会做出错误的选择
- jquery表单验证复选框错误显示
- 页面上的2个表单带有JS验证-其中一个抛出电子邮件验证错误
- 在页面对象文件中验证sendKeys结果会导致未定义的错误(Protractor)
- 表单值未在单击按钮时发布,显示验证错误
- 表单已发送,但验证有错误
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- Javascript表单验证-jsFiddle错误
- 无法使用JavaScript打印带有for循环的验证错误
- 为什么我的 JavaScript 会导致 HTML 验证错误
- 错误验证在AngularJS中不起作用
- 在线错误验证
- 接收package.json的解析错误.验证为有效的json
- 错误验证 W3C HTML5 img noscript facebook.com.
- 使用jquery输入文件类型错误验证不工作
- 带有警报的表单错误验证
- Angularjs用ng-href对dropdown/select redirect进行错误验证