j确认没有等待用户回复

时间:2015-06-23 10:30:34

标签: javascript callback

我有这个javascript函数。我需要将确认更改为jConfirm。

   var isValidSpecialityToSave =function(){
   var isValid = false;
   if(isEmpty("Specialtylist"))
     {
         jAlert("Speciality doesn't exist","Error");
      }
      else if(!isValidPrimary())
     {
        //Have to change this confirm to jConfirm
        if(confirm('Primary speciality already exists.Don't you want to overide it'))
                   {
                    isValid =true;
                   }
      }
      else{
              isValid =true;
          }
                return isValid;
     };

现在这是我的代码 - >

 else  if(!isValidPrimary())
 {
  jConfirm('Primary speciality already exists.Don't you want to overide it',"Warning",function(r)
   {
     if(r)
     {
     isValid=true;
     }
   });
 }
 else
     {
      isValid=false;
     }
      return isValid;
 };//End of function

现在的问题是,当代码进入else-if块时,屏幕上会出现jConfirm,但是在用户可以单击Ok或Cancel之前执行return语句(return isValid)。我甚至无法将return语句移动到jConfirm回调中,因为它将isValid返回到jConfirm回调函数,并且“isValidSpecialityToSave”未定义。

我能以任何方式完成这项工作吗?欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

两件事:1)逃避你的撇号。 2)jConfirm不能像内置的确认功能一样停止javascript处理。用户选择一个选项,而其余代码继续运行后,您的回调就会发生。您需要重新编写代码,以便接收到的任何内容isValid都在jConfirm回调中运行,而不是等待从它返回。

答案 1 :(得分:0)

JConfirm或JAlert,下一步应该在回调函数中。例如。我在下面给出。保存Ajax帖子并转到另一页后,我想显示一条成功消息。

enter image description here