gpt4 book ai didi

javascript - 在联系表单上提交时不要输入 "Leave this page"

转载 作者:行者123 更新时间:2023-11-28 01:19:46 27 4
gpt4 key购买 nike

我只看到了另一个类似的问题 ( this one ),但我不知道如何将其应用到我的页面。我是网络开发新手,所以我使用了 this template索取联系表格。您可以在这里查看我的联系页面:http://mikeyaworski.com/contact_files/

问题是,当您提交消息时,页面会重新加载(我认为)。我使用 window.onbeforeunload 函数在用户离开页面时提醒他们。但是当他们按下提交时,就会出现警报,因为他们显然正在“离开页面”。那不是我想要的。我希望页面不重新加载,因此不应弹出警报。

旁注:提交后,字段的大小会发生变化。有谁知道为什么吗?

这不是我的代码,因此我不确定是什么导致页面重新加载以及如何修复它。

这是索引页(我认为相关的部分):

<?PHP
require_once("./include/fgcontactform.php");
$formproc = new FGContactForm();
$formproc->AddRecipient('mail@mikeyaworski.com'); //<<---Put your email address here
$formproc->SetFormRandomKey('CnRrspl1FyEylUj');

if(isset($_POST['submitted'])) {
if($formproc->ProcessForm()) {
echo "<script type='text/javascript'>alert('Sent!');</script>";
}
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<title>Contact - mikeyaworski</title>
<link rel="STYLESHEET" type="text/css" href="contact.css" />
<script type='text/javascript' src='scripts/gen_validatorv31.js'></script>

<style type="text/css">
label {
color: white;
}
textarea {
max-width: 400px;
max-height: 200px;
}

input#name, input#email, input#subject {
height: 18px;
width: 220px;
}
</style>
</head>
<body style="background-color:#101010;">

<script type="text/javascript">
window.onbeforeunload = function() {

var name = document.getElementById('name').value;
var email = document.getElementById('email').value;
var subject = document.getElementById('subject').value;
var message = document.getElementById('message').value;

if (name == "" && email == "" && subject == "" && message == "") { // do nothing (all blank fields)

}
else {
return 'Your changes will not be saved.'; // stop them, they have unsaved content
}
};
</script>

<!-- Form Code Start -->
<form id='contactus' action='<?php echo $formproc->GetSelfScript(); ?>' method='post' accept-charset='UTF-8'>
<fieldset>
<legend style="color:white;">Contact</legend>

<input type='hidden' name='submitted' id='submitted' value='1'/>
<input type='hidden' name='<?php echo $formproc->GetFormIDInputName(); ?>' value='<?php echo $formproc->GetFormIDInputValue(); ?>'/>
<input type='text' class='spmhidip' name='<?php echo $formproc->GetSpamTrapInputName(); ?>' />

<div><span class='error'><?php echo $formproc->GetErrorMessage(); ?></span></div>

<div class='container'>
<label for='name' >Your Name: </label><br/>
<input type='text' name='name' id='name' maxlength="50" /><br/> <!-- value='<?php //echo $formproc->SafeDisplay('name') ?>' -->
<span id='contactus_name_errorloc' class='error'></span>
</div>

<div class='container'>
<label for='email' >Email Address:</label><br/>
<input type='text' name='email' id='email' maxlength="50" /><br/> <!-- value='<?php //echo $formproc->SafeDisplay('email') ?>' -->
<span id='contactus_email_errorloc' class='error'></span>
</div>

<div class='container'>
<label for='subject' >Subject:</label><br/>
<input type='text' name='subject' id='subject' maxlength="50" /><br/><!-- value='<?php //echo $formproc->SafeDisplay('subject') ?>' -->
<span id='contactus_subject_errorloc' class='error'></span>
</div>

<div class='container'>
<label for='message' >Message:</label><br/>
<textarea rows="10" cols="50" name='message' id='message'></textarea> <!-- <?php //echo $formproc->SafeDisplay('message') ?> -->
<span id='contactus_message_errorloc' class='error'></span>
</div>

<div class='container'>
<input type='submit' name='Submit' value='Submit' />
</div>

</fieldset>
</form>
<!-- client-side Form Validations:
Uses the excellent form validation script from JavaScript-coder.com-->

<script type='text/javascript'>
// <![CDATA[

var frmvalidator = new Validator("contactus");
frmvalidator.EnableOnPageErrorDisplay();
frmvalidator.EnableMsgsTogether();
frmvalidator.addValidation("name","req","Please provide your name.");
frmvalidator.addValidation("email","req","Please provide your email address.");
frmvalidator.addValidation("email","email","Please provide a valid email address.");
frmvalidator.addValidation("subject","req","Please provide the subject.");
frmvalidator.addValidation("message","req","Please provide your message.");
frmvalidator.addValidation("message","maxlen=2048","The message is too long (more than 2KB).");

// ]]>
</script>

</body>
</html>

我认为它与$formproc = new FGContactForm();有关。因此,如果您需要查看文件 fgcontactform.php 中的函数,请告诉我。

最佳答案

已更新

<input type="submit" name="Submit" value="Submit" onclick="window.onbeforeunload = null;">

如果单击提交,则将处理程序 window.onbeforeunload 设置为 null

关于javascript - 在联系表单上提交时不要输入 "Leave this page",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23377086/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com