Safari for iPhone上的JavaScript确认窗口始终返回false

Safari for iPhone上的JavaScript确认窗口始终返回false,javascript,iphone,knockout.js,mobile-safari,Javascript,Iphone,Knockout.js,Mobile Safari,我正在使用Knockout.JS为表单供电,我有一个按钮,按下时会显示一个确认窗口。只有在Safari for iPhone上,它总是返回false。它可以在我的iPhone上使用Chrome浏览器,在我的iPad和笔记本电脑上可以在包括Safari在内的所有浏览器上使用。也没有错误 self.submitPayment = function(){ var errors2 = ko.validation.group(secondValidationGroup); if (erro

我正在使用Knockout.JS为表单供电,我有一个按钮,按下时会显示一个确认窗口。只有在Safari for iPhone上,它总是返回false。它可以在我的iPhone上使用Chrome浏览器,在我的iPad和笔记本电脑上可以在包括Safari在内的所有浏览器上使用。也没有错误

self.submitPayment = function(){
    var errors2 = ko.validation.group(secondValidationGroup);
    if (errors2().length == 0) {
        if(confirm_reservation() == true){
            finalizePayment(); //calls function which displays a new div
        }
        else{
            alert('False was returned'); //displays before I even make a selection
        }
    }
    else{
        errors2.showAllMessages();
    }
}

 //used to confirm submission for submitPayment 
function confirm_reservation(){
    var conf = confirm('Click OK to submit your payment');
    return conf;
}
在我做出选择之前,我收到了“False was returned”警报。所以基本上,它甚至不允许我在返回值之前进行选择

编辑-它现在正在工作,我想我可能遇到了一个错误


我清除了手机上的cookies/cache并重新启动,然后手机开始正常工作

我认为问题是由于非同步的原因,您的确认预约方法不等待确认结果,直接返回false。。你能试着在下面确认你的方块改变吗

confirm('Click OK to submit your payment', function(result) {
  if(result) {
    finalizePayment();
  } else {
    alert('False was returned'); //displays before I even make a selection
  }    
});
你可以尝试:

if(confirm('Your question')) 
{ 
 // do things if OK
}
else
{
// do things if KO
}

在AOZ暗示这可能是一个bug之后,我清除了我的cookies/缓存,重新启动了我的手机,然后它开始工作。我正在使用我原来的方法,现在可以正常工作了

@mplungjan这将如何解决问题?我在上面说过,它只在iPhone Safari浏览器上执行此操作。它在我使用过的所有桌面浏览器上都可以正常工作。除非你有可以加载的东西,否则无法解决任何问题。当我尝试此操作时,不会返回任何内容,甚至当我按“取消”时也不会返回。见我的编辑上面。可能是我执行错误。可能是ios safari错误,请用谷歌搜索。。如果它是一个bug,您应该放弃使用javascript确认。你可以用你自己的方式来做,比如打开一个对话框,然后按ok,你就可以继续你的流程。在什么浏览器上有回调方法@我想你是对的,那是一只虫子。我清除了我的cookies/缓存,重新启动了我的手机,现在它可以工作了。这不需要等待响应。它立即返回false,就像我最初的实现一样。非常奇怪,我不知道它为什么会这样做。但是如果你的用户遇到这个问题呢?你不能指望他们重启手机让你的应用程序工作。我在iPhone5iOS7.0.4上也体验到了这一点。我今天才注意到它,真的是一只不可预测的虫子。