2010-02-03 94 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

相關問題