弹出警报过早显示?
Posted
技术标签:
【中文标题】弹出警报过早显示?【英文标题】:Popup alert showing prematurely? 【发布时间】:2014-04-05 13:16:52 【问题描述】:我正在处理一个包含一些必填字段的提交表单,并且我有一段代码允许在您点击“提交”按钮后出现弹出菜单,然后在您点击“确定”后从那里出现在您被重定向到主页的警报上。这是我用于弹出警报的代码。
<div id="popup">
<button onclick="myFunction()">Submit</button>
<script>
function myFunction()
alert("Thank you! \nYour sumbission has been
accepted and you will receive a conformation email shortly! \n
You will now be taken to the Home page.");
</script> <input type="reset" value="Reset" />
</div>
这是将您重定向到主页的代码的开头。
<div id="all">
<div id="text">
<h1>Your Information</h1>
<form id="contact_form" action="home.html" method="post">
<input type="hidden" name="redirect" value="home.html" />
(注:我剪掉了上面这段代码,因为下面的信息只是表单输入框)
这就像你想象的那样工作,一旦你点击提交按钮就会弹出警报。但是我的问题是我的表单上有一些必填字段,如果未填写这些字段并且您点击“提交”,则会出现弹出警报,并且一旦您在警报上点击“确定”,因为您还没有要填写这些字段,它会将您带回表单,然后会出现一个小框,上面写着“此字段是必需的”。
这是错误的顺序。我希望必填字段的警报框在之前显示确认表单提交的弹出警报,这样如果您有必填字段并且点击提交,它会告诉您填写必填字段在消息出现之前,感谢您提交。
这可能是一个简单的放置修复或添加一些代码,但我很难弄清楚如何去做或找到一个可以帮助我的示例。
如果您知道该怎么做,我将不胜感激,谢谢!
编辑:这是验证码的 javascript 文件。
window.onload = setForm;
function setForm()
document.forms[0].onsubmit = function()
if (this.checkValidity()) alert("No invalid data detected. Will
retain data for further testing.");
return false;
【问题讨论】:
验证码在哪里?它是如何被调用的? 【参考方案1】:function Validation()
vak k = true;
k = function 1 validates field 1 AND returns true or False based On Validation
k = function 2 validates field 2 AND returns true or False based On Validation
k = function 3 validates field 3 AND returns true or False based On Validation
return k;
//At The End Of This Function You Need To Get "TRUE" To Truly Submit.
On Submit :
If(Validation() == true)
then Only Submit
Write Back If It Dosen't Works...
【讨论】:
这仍然产生与我前面提到的代码相同的结果。 . .也许我没有正确实施它? 1:在单击提交按钮时,您是否从 Validation() 函数接收到 true。TRUE 表示表单上没有必需的数据字段。 您可以在 Firebug 中调试 Javascript 以查看发生了什么...点击提交按钮...如果没有发生请快速回复【参考方案2】:<html>
<body>
<div id="popup">
<textarea cols="30" rows="2" name="required" id="required"></textarea>
<input type="submit" id="click" value="Submit">
<input type="reset" value="Reset" />
</div>
<script>
var click = document.getElementById("click");
click.addEventListener("click", function()
var required = document.getElementById("required").value;
if (required===null || required==="")
alert("Please make sure all required field are completed");
else
alert("Thank you! \nYour sumbission has been accepted and you will receive a conformation email shortly! \nYou will now be taken to the Home page.");
window.location.replace("http://***.com", 5000);
);
</script>
</body>
</html>
http://jsbin.com/wuxahape/1/
【讨论】:
我试过了,无论是否填写了所需的信息,它都会显示相同的消息;即使填写了所有必要的输入框,它也会在重定向到主页之前显示“请确保所有必填字段都已完成”消息。 你有没有点击它对我有用的链接,你可能需要清理你的浏览器数据click hear以上是关于弹出警报过早显示?的主要内容,如果未能解决你的问题,请参考以下文章
当您回答问题并且有人提交另一个答案时,*** 上显示的弹出警报是如何创建的?