Alertify不会因提示而停止

Zez*_*ez3 1 javascript c# jquery prompt alertify

所以我有这些代码行:

$('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
  }
Run Code Online (Sandbox Code Playgroud)

系统运行时,它会在提示符处停止,除非用户进行交互,否则不会继续执行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
  }
Run Code Online (Sandbox Code Playgroud)

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

Kar*_*non 6

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

这就是为什么alertify接受回调作为参数.在function(e, str)被用户按下后触发okcancel.该str论点是用户输入的内容.只需在回调中移动您的条件:

alertify.prompt("Message", function (e, str) {
    if (e) {
        // user clicked "ok"
        if(str != "")
        {
            //do something
        }
    } else {
        // user clicked "cancel"
    }
}, "Default Value");
Run Code Online (Sandbox Code Playgroud)