我目前正在创建一个Windows 8.1商店应用程序,使用html5,bing maps,javascript,phonegap& jquery的。
我的应用程序中有一个按钮,单击该按钮会调用以下功能
function resetFields() {
var svar;
var tryk = confirm("Are you sure!");
if (tryk === true) {
svar = "You pressed OK!";
} else {
svar = "You pressed Cancel!";
}
alert(svar);
}
该函数被称为正常,我看到了预期的确认对话框。但是,无论按哪个按钮,结果都是相同的 - 对话框响应就像按下了“取消”按钮一样。
我尝试了if (tryk === true)
和if (tryk == true)
,但结果是一样的。
我错过了什么?
即使alert(confirm("Are you sure!"))
正在返回'undefined',所以我认为我的答案比基本代码更深入。
答案 0 :(得分:2)
我刚刚浏览了一些PhoneGap文档,因为它是围绕html5和带有jquery支持的javascript构建的,它倾向于覆盖我们通常会在浏览器中看到的某些元素,以利用本机设备元素,如确认对话。
来自Notification confirm api docs:
函数notification.confirm显示一个比浏览器的确认功能更可自定义的本机对话框。
现在,我认为变量tryk
未定义可能是因为只要在确认对话框上单击任何按钮就立即返回请求,这就是为什么您无法正确利用处理函数。
在api文档中,他们提供了一个快速示例,如下所示:
// process the confirmation dialog result
function onConfirm(button) {
alert('You selected button ' + button);
}
// Show a custom confirmation dialog
//
function showConfirm() {
navigator.notification.confirm(
'You are the winner!', // message
onConfirm, // callback to invoke with index of button pressed
'Game Over', // title
'Restart,Exit' // buttonLabels
);
}
可以从任何html元素触发showConfirm()
方法,如下所示:
<a href="#" onclick="showConfirm(); return false;">Show Confirm</a>
所以我认为你应该坚持他们正式提供的实施。我只是偶然发现了另一个SO Question,它说PhoneGap确认实际上是在进行异步回调。
答案 1 :(得分:1)
试试这个
<html>
<head>
<script>
function Fields1(){
var svar;
var tryk = confirm("Are you sure!");
if (tryk === true) {
svar = "You pressed OK!";
} else {
svar = "You pressed Cancel!";
}
alert(svar);
}
</script>
</head>
<body>
<button onclick='Fields1()'>Hai</button>
</body>
</html>