javascript - 验证后,如何清除表单?

  显示原文与译文双语对照的内容
0 0

点击提交并验证后,我无法清除表单。 这个表格有三个部分。 HTML,JS和 PHP 。 表单提交和验证正确,但字段在下列情况下不清除。 我尝试了多种方法来清除它,但我没有运气。

 <form id="formR" name="formR">
 <input type="hidden" name="q" id="q" value="formR">
 <input type="hidden" name="zip" id="zip" value="12345">
 <p>
 <label>
 <input name="Name" type="text" placeholder="Name" id="name" onBlur="if(this.value=='') { this.value='Your Name' }" onFocus="if(this.value=='Your Name') { this.value='' }" value="Your Name"> 
 </label><br>
 <label>
 <input name="email" type="text" placeholder="E-mail" id="email" onBlur="if(this.value=='') { this.value='E-mail' }" onFocus="if(this.value=='E-mail') { this.value='' }" value="E-mail"> 
 </label><br>
 <label> 
 <input name="phone" type="text" placeholder="Phone Number" id="phone" maxlength="10" onBlur="if(this.value=='') { this.value='Phone Number' }" onFocus="if(this.value=='Phone Number') { this.value='' }" value="Phone Number">
 </label><br>
 </p>
 <input name="quote" id="quote" type="hidden" value="Recreational"/>
 <input name="Submit" type="button" value="Submit" onClick="validateForm()">
 </form>
 function isNumberKey(evt)
 {
 var charCode = (evt.which)? evt.which : event.keyCode
 if (charCode> 31 && (charCode <48 || charCode> 57))
 return false;
 return true;
 }
 function updateZip ()
 {
 document.getElementById('zip').value = document.getElementById('zipcode').value;
 }
 function validateForm()
 {
 if(document.getElementById('name').value.length> 0 && document.getElementById('email').value.length> 0 && document.getElementById('phone').value.length> 0 && document.getElementById('name').value!= 'Name' && document.getElementById('email').value!= 'E-mail' && document.getElementById('phone').value!= 'Phone Number')
 {
 if((document.getElementById('email').value.indexOf('@')!= -1) && (document.getElementById('email').value.indexOf('.')!= -1))
 {
 subForm();
 return true;
 }
 else 
 {
 alert('Please enter a valid email address!');
 return false;
 }
 }
 else
 {
 alert('Please enter all your information in first!');
 return false;
 }
 }
 function subForm()
 {
//var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone;//alert (dataString);return false; 
$.ajax({ 
type:"POST", 
url:"sendEmail2.php", 
data: $("#formR").serialize(),
success: function(msg) { 
showNotification({
message: msg,
type:"success",
autoClose: true, 
duration: 10
})
}
}); 
return false; 
$("formR" )[ 0 ].reset(); 
} 

另外还有一个php代码,因这里我不确定这是否是表单没有清除的原因。 也许我把它放在错误的地方?

<?php
//Email sender...
//Config
`$emailTo = 'preintel@gmail.com';
$ip = $_SERVER['REMOTE_ADDR'];
if($_POST['q'] == 'formR')
{
//verify ip address:
$validateIP = true;
try{
$cont = file_get_contents("logs/formR.txt");
$lines = explode("n",$cont);
foreach($lines as $s)
{
 if(strpos($s,$ip)!== false)
 $validateIP = false;
}
if($validateIP == false)
echo"A request has already been made with IP address:".$ip.". Please wait until we contact you!";
}
catch(Exception $e)
{
 echo"An error occurred, please make sure your ip address is not masked!";
}
$name = $_POST['Name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$quote = $_POST['quote'];
$headers ="From:". strip_tags($_POST['email'])."rn";
$headers. ="Reply-To:". strip_tags($_POST['email'])."rn";
//$headers. ="CC: susan@example.comrn";
$headers. ="MIME-Version: 1.0rn";
$headers. ="Content-Type: text/html; charset=ISO-8859-1rn";
$subject ="New Quote Request From:".$name;
$message ="<h3>A quote has been requested:</h3><hr/>Name:".$name."<br/>Email:".$email."<br/>Phone Number:".$phone."<br/>Quote:".$quote."<br/><br/><br/>Request Time:".date("Y-m-d H:i:s")."<br/>Requesting IP:".$ip;
if($validateIP)
{
 if(mail($emailTo, $subject, $message, $headers))
 {
 echo"Thank you, your quote will be processed! We will contact you shortly.";
//Write ip to log file...
 $file = 'logs/formR.txt';
 $current = file_get_contents($file);
 $current. = $ip." -".date("d/m/y : H:i:s", time())."n";
 file_put_contents($file, $current); 
 }
 else
 echo"An error occurred sending your email, please try again later!";
}
}
else
echo"Oops! An error occurred... Please email us at:".$emailTo;
?>
时间:原作者:7个回答

0 0

你应该执行以下操作:

$("#formR" )[0].reset();//<--forgot the # because that's the form's ID

而且你可能不需要 [0]: $("#formR" )[0].reset();

然后在返回语句之前放置该行- 你当前拥有。

这假设你有一些jquery插件,它公开了我在核心jquery库之前没有见过的"重置"function- 。

原作者:
0 0

验证和提交表单后,如果要将值重置为默认值( 他们最初拥有的价值),可以以简单地将php变量设置为这些默认值。 因此,如果初始值是空的,将变量设置为""并再次将它们附加到窗体。
如果使用AJAX提交表单,可以以使用JavaScript清除内容,也可以以简单地刷新页面。 那就of了。
除非有特定的问题,否则重置表单不会造成任何麻烦。

希望这有帮助

原作者:
...