2010-02-03 95 views
1

我在所见即所得预览的东西中显示组合框。我希望用户能够点击组合框并查看里面的选项,但我不希望他们能够更改值。我尝试在change事件上使用preventDefault(),但它不起作用。我不想禁用它,因为我确实希望用户能够“查看”下拉菜单。是否有可能在更改事件之前捕获comboBoxes值

所以我试图阻止变化,但不能。我的下一个手段是将选定的索引更改回到更改之前的状态,有没有办法在ListEvent.CHANGE事件侦听器的范围内执行此操作?

当前的解决方法是基本上重新分配控件选择项目的方式与我在最初构建它时定义选定项目的方式相同(默认选择)。所以用户看到他们的变化,然后立即变回默认选择。

+0

您目前拥有它的方式听起来不太糟糕。 – Allan 2010-02-03 22:37:46

+0

虽然我更喜欢它对用户是不可见的,所以当他们点击下拉菜单中的另一个项目时,它仍然保持原始值。可能只能忍受我得到的东西。 – invertedSpear 2010-02-03 23:01:45

回答

1

你确定组合框是你想要的吗?你可以用一个不可选择的列表组件做同样的事情吗?

更新

如果你必须使用一个组合框,你不要想从监听事件和复位控制的滞后性,我看到了两个可能的选项。你可以将控件进行子类化并制作你自己的。当你这样做时,劫持除初始选择之外的任何设置值的方法。

或者,你可以尝试这样的:http://wmcai.blog.163.com/blog/static/4802420088945053961/。该网站似乎是另一种语言,但代码仍然存在。它将允许您禁用选项,因此用户不能选择其他选项之一。

HTH

+0

项目赞助商希望WYSIWYG预览与它预览的东西相匹配,该预览包含组合框。我的手绑在这一个: -/ – invertedSpear 2010-02-03 20:58:14

+0

检查我更新的答案,看看是否有帮助你。 – 2010-02-04 14:03:21

+0

你说得对,我应该劫持这些方法。我会查看该网站,但我认为它现在处于维护时段(很难说,因为我甚至不知道它是什么语言)。 – invertedSpear 2010-02-04 15:32:30

相关问题