2009-11-30 39 views
1

我正在筛选prompt()confirm()替代JavaScript。我需要创建几个有三个或更多选项的confirm()和alert()。我想使用我正在使用的Lightbox类。然而,没有我已经找到了替代的可返回操作直接等确认()和提示(的结果)可以:如何在Javascript中创建TRULY模态警报/确认?

success = confirm("Success yes/no?"); 
if (success == true) 
...... 

可以替换被写入,使得其以相同的方式,即,表现该它会打开一个对话框,等待用户输入并返回哪些按钮已被点击?或者这是不可能做到的(这就是我现在怀疑的),你必须通过附加动作到“是/否/不管”按钮本身来解决它吗?

编辑:我决定不接受乔希的答案。这是完全有帮助的,但它不能回答这个问题 - 有没有一种方法可以在Javascript中实现真正的模态对话框?似乎没有。

+0

好奇你的意思是“灯箱类” - 是一个CSS类的引用?还有什么意思是“等待用户输入” - 你能澄清一下吗? – Joshua 2012-01-17 16:20:17

+0

@Josh - “班”我的意思是“一些灯箱产品”,我会澄清一点。 “等待用户输入”意味着“在用户确认一个选择或另一个选择之前暂停脚本执行”。除了同步Ajax调用,似乎没有JavaScript方法可以实现这一点。你的回答是完全有帮助的,这是大多数有这个问题的人的答案,但我很好奇,是否有办法在JS中以这种方式停止脚本执行。 (可能没有。) – 2012-01-17 17:07:00

回答

2

IE和Firefox 3都有一个showModalDialog方法,可以让您以模态方式显示整个网页。但是,对于真正的跨浏览器解决方案,您无法使用该解决方案。

许多流行的框架提供了一种机制,通过显示HTML元素并在显示元素时禁用对网页其余部分的访问。

3

大多数具有UI组件的JavaScript框架都有一些会提供回调的对话框。查看jQuery UI,例如:http://jqueryui.com/demos/dialog/

我已经在多个项目中使用它来完成您所描述的内容。

编辑:我希望能提出一个解决方法。不幸的是,JavaScript不包含覆盖并向默认的基于浏览器的Alert(),Confirm()或Prompt()对话框添加其他按钮或选项的方法。