我有这个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出现在屏幕上,但是在用户单击“确定”或“取消”之前,将执行return语句(return isValid)。我什至不能将return语句移到jConfirm回调中,因为它将把isValid返回到jConfirm回调函数,并且“ isValidSpecialityToSave”变得不确定。

有什么办法可以使我工作?任何建议都欢迎。

最佳答案

两件事:1)转义撇号。 2)jConfirm无法像内置的确认功能那样停止javascript处理。在用户选择一个选项而其余的代码继续运行之后,将发生回调。您需要重新编写代码,以便在jConfirm回调中运行接收isValid的内容,而不是等待其返回。

09-25 18:09