Javascript直接确认()函数替换
Javascript direct confirm() function replacement
我想替换Javascript确认()函数,以允许自定义按钮而不是是/取消。我试着搜索,但所有的解决方案是事件驱动,如jquery对话框(其中代码不等待响应,但它是事件驱动)。有人知道非事件驱动的解决方案吗?它必须在Safari和IE中工作(所以没有vbscript)。
下面是我的系统中许多部分的示例代码。这是旧代码,在设计时没有考虑到事件驱动窗口。我正在努力避免重写。
**
// Wait for users response
if (result>2000) {
if (confirm("Are you sure this is right?")){
... do stuff
}
}
... continue with other stuff
... lots of other code.
if (confirm("Did you double check your numbers?")){
... do more stuff
} else {
... do something
}
* * 就像其他人说的,这是不可能的。confirm
是一个阻塞函数——在用户取消对话框之前不会执行更多的脚本——你不能用Javascript的其他方法来模拟。
一个更好的解决方案是为异步执行构建你的代码。这通常是个更好的主意——首先,它让你决定对话框的外观、按钮等;其次,它不会屏蔽用户。他们可能需要在另一个选项卡或页面的其他地方仔细检查打开的重要信息。对于confirm
,他们必须在能够到达这些地方之前回答你的问题。
下面是代码的一个片段。这里有很多空白位,但它可能会让你进入正确的轨道:
if (result>2000) {
displayConfirm("Are you sure this is right?", {
"Yes": function () {
// ... do stuff
},
"No": function () {
// do.. nothing? up to you.
}
}
}
您将看到这里定义了两个函数,但实际上没有一个被执行。displayConfirm
函数必须构造一个对话框(以任何方式),然后创建按钮,使用这些函数作为单击处理程序(或至少从单击处理程序调用它们)。
你想做的事是不可能的。您必须使用事件驱动的自定义对话框解决方案,或者坚持使用浏览器默认的确认对话框。
如果不更改调用,您将无法做到这一点。没有任何自定义代码可以像confirm
盒子那样停止执行。任何解决方案都需要编辑事件模型的代码。
正如其他人提到的那样,你不能直接做,但我设法以一种迂回的方式做了。假设像我一样,你有一个HTML按钮提交表单,并希望该按钮有一个jQuery模态对话框…
- 为HTML按钮添加onclick事件
- 使onclick事件打开一个jQueryUI对话框,并使onclick事件返回false以取消按钮的默认动作
- 在你的jQueryUI对话框中,获得Yes/Ok按钮来移除步骤1中按钮的onclick事件,然后调用并触发按钮来触发click事件
- 在javascript中将命名函数替换为匿名函数
- 我需要将一个参数从另一个任务传递给gullow任务,或者用runSequence调用的函数替换一个任务
- 原型回调函数替换'这'价值
- 使用替换函数替换 XML 标记不起作用
- Javascript 字符串使用 regExp 和 replacer 函数替换
- 将 onfocus 和 onblur 函数替换或添加到 jQuery 函数中的文本框
- 用返回函数替换 PHP 中的字符串
- 如何在 JavaScript 中用 DOM 操作函数替换元素内容
- 如何用自定义函数替换JavaScript原型
- 我如何在文本输入中禁用正常的输入时提交行为,并用我自己的函数替换它
- 用on函数替换live
- 用函数替换整个DIV
- 将jquery函数替换为var
- javascript函数替换不起作用,为什么
- 为什么地址栏中的文件名会被JavaScript函数替换
- 将ajax错误和成功函数替换为传递给父函数的替代函数
- Javascript直接确认()函数替换
- JQuery Ajax用JQuery函数替换项目
- 如何将所有live()函数替换为on()函数
- 如何用替换函数替换一个字符