1

所以我有这些代码行:

$('td').click(function (e) {
    var test = "....";
    var test2 = "....";
    var test3 = "....";
    SuppressWarning(test, test2, test3);
});

function SuppressWarning(test, test2, test3)
{
  var reason = prompt("Why are you suppressing this warning?");
  if(reason != "")
  {
    //do something
  }

当系统运行时,它会在提示符处停止,除非用户交互,否则不会继续执行 if 语句。但是,我想自定义警报框,所以我决定使用 alertify.js 。

所以我现在结束了这段代码:

$('td').click(function (e) {
var test = "....";
var test2 = "....";
var test3 = "....";
SuppressWarning(test, test2, test3);
});

function SuppressWarning(test, test2, test3)
{
var reason = alertify.prompt("Message", function (e, str) {
if (e) {
    // user clicked "ok"
} else {
    // user clicked "cancel"
}
}, "Default Value");

if(reason != "")
  {
    //do something
  }

我的问题是,当系统运行时,它并没有在提示符处停止;它只是进入 if 语句而不做其余的事情。这是为什么?为什么它不会在提示符处停止以便用户可以输入内容?我怎样才能解决这个问题?谢谢!

4

1 回答 1

7

prompt是浏览器原生的并停止当前的代码流,就像一个警告框或确认。另一方面,alertify 没有。如果触发了 alertify,脚本将不会停止。

这就是为什么 alertify 接受一个回调作为参数。在用户按下或function(e, str)后触发。参数是用户输入的内容。只需将您的条件移动到该回调中:okcancelstr

alertify.prompt("Message", function (e, str) {
    if (e) {
        // user clicked "ok"
        if(str != "")
        {
            //do something
        }
    } else {
        // user clicked "cancel"
    }
}, "Default Value");
于 2014-09-24T18:43:18.563 回答