我正在使用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 return'警告。所以基本上它甚至不让我在返回值之前做出选择。
编辑 - 现在正在运行,我想我可能遇到了一个错误
我在手机上清除了我的cookie /缓存并重新启动它然后继续正常工作。
答案 0 :(得分:0)
我认为由于asycnhronus问题导致的问题,你的“confirm_reservation”方法不会等待确认结果,并直接返回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
}
});
答案 1 :(得分:0)
您可以尝试:
if(confirm('Your question'))
{
// do things if OK
}
else
{
// do things if KO
}
答案 2 :(得分:0)
在AOZ建议它可能是一个错误后,我清除了我的cookie /缓存并重新启动了我的手机,然后它继续工作。我正在使用我的原始方法,现在它正常工作。