弹出警报过早显示?

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

以上是关于弹出警报过早显示?的主要内容,如果未能解决你的问题,请参考以下文章

当您回答问题并且有人提交另一个答案时,*** 上显示的弹出警报是如何创建的?

Appium - 弹出警报消息没有被解雇

swift 显示iOS弹出警报消息

如何使用 JavaScript 处理弹出警报? Selenium 网络驱动程序

如何向我的苹果 IOS 用户发送弹出警报?

如何验证用户是不是具有网络访问权限并在没有网络访问权限时显示弹出警报