【问题标题】:Run another javascript when user clicks "ok" on alertbox当用户在警报框上单击“确定”时运行另一个 javascript
【发布时间】:2012-05-29 17:22:32
【问题描述】:

基本上,我有一个脚本,它每 10 秒检查一次数据库,并通过 javascript 警报框通知用户数据是否已更改。但是当用户看到警报并单击“确定”时,我还需要更改数据库。那么,当用户在 javascript 警报上单击“确定”时,是否可以运行 javascript 函数?

例如

<html>
<head>
<script type="text/javascript">
function show_alert()
{
alert("New data!");
}
</script>
</head>
<body>

<input type="button" onclick="show_alert()" value="Show alert box" />

</body>
</html>

当用户点击确定时它应该运行这个函数

  function UpdateDB()
  {
      jQuery.ajax({
       type: "POST",
       url: "update.php",
       data: 'condition=ok',
       cache: false,

     });
 }

【问题讨论】:

  • 使用确认而不是警报tizag.com/javascriptT/javascriptconfirm.php
  • @Bandye 警报没有错。他不希望用户确认。
  • @Jivings when user has seen the alert and clicked OK怎么样
  • @Jiviings 没错!这就是为什么我发布了我真正有用的答案!很快就被否决了……哈哈
  • 就我而言,重要的是用户只能选择单击“确定”,因此我不能使用确认框

标签: javascript jquery function alert


【解决方案1】:

您真正需要的是confirm()。我不认为你可以对警报的 ok press 采取行动(实际上你不想这样做,因为它不会让用户改变主意!)...

所以...

if (confirm("Do you REALLY want this?")){
   //your AJAX CALL HERE
}

【讨论】:

  • 如果他不想得到用户确认,则不会。
  • 当他说...“当用户看到警报并单击确定”时,暂时忘记了 OP 实际上确实要求这个,那么警报的意义何在?用户按下了按钮。如果有的话,您会希望在 Ajax 调用返回后发出警报,否则它根本没有任何用处!并感谢您的反对。你真的在用你的勤奋帮助社区。在尝试帮助某人之前,我一定会三思而后行。
  • @Dr.Dredel 你假设是我对你投了反对票。不过,请正确格式化您的答案,我会删除它。
  • +1 考虑到确认框的工作原理,显然这不是一个不合理的答案。在询问某些标准功能的使用是非正统或不寻常的问题时,提出问题的人应该考虑真正清楚地解释他/她为什么他/她以一种方式使用所述功能与传统智慧相反。否则,由于简单、可避免的误解,潜在的好答案会被否决。
  • @Jivings,我没有做出这样的假设。我是在向投反对票的人讲话。我已将我的代码格式化为更漂亮。随意投票而不受惩罚! :)
【解决方案2】:

alert 函数会暂停代码的执行,直到它被解除。这意味着您希望在单击警报后运行的任何代码都可以简单地放在调用alert 方法之后。

alert("New data!");
UpdateDB();

【讨论】:

  • 如果我只执行一个将数据发送到服务器的功能,这可以正常工作。但是我需要我的函数在 POST 之后刷新页面。但是,当我添加成功 success: function(response) { window.location.reload() } 时,即使没有显示警报,它也会一次又一次地重新加载。
  • 你能把你如何实现这个的 jsfiddle.net 放在一起,我会看看。
  • 这是我一直在使用的:jsfiddle.net/FFMrz 所以它每 10 秒从服务器获取数据,如果数据发生变化,它会显示警报。在用户按下 OK 按钮后,它应该执行 jQuery POST,然后重新加载窗口。但现在它似乎自动发布并更新窗口而没有显示警报......
  • 这部分在这里if(oldData != "") alert("New data!");。因为您没有在if 语句的内容周围加上花括号,所以只有if 之后的第一行被认为是if 的一部分。其余的不在此范围内,无论您的条件检查如何,都会执行。
【解决方案3】:
function show_alert()
{
    alert("New data!");
    UpdateDB();
}

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多