簡體   English   中英

如何更改struts2選擇下拉列表的默認行為

[英]how to change the default behaviour of struts2 select dropdown list

我有一個帶有數字的struts2 select下拉列表。 我需要使用默認的鍵盤數字在其中選擇一個特定的數字,並且它可以工作,但是在這種情況下,我需要更具體地禁用該行為,例如,如果我需要25,則可以鍵入2和5,但是如果鍵入2,但輸入5時有延遲,則它不起作用,因此僅選擇了20,而不是25。

另一個是我需要禁用以下行為:當按下2並再次延遲2時,它將開始將數字遞增1,例如20,21,22 ...依此類推,直到29。

我需要的行為是struts2下拉列表應僅選擇我確切鍵入的內容。

<s:select list="#{'0':'00','1':'01','2':'02','3':'03','4':'04','5':'05','6':'06','7':'07','8':'08',                 '9':'09','10':'10','11':'11','12':'12','13':'13','14':'14','15':'15','16':'16','17':'17','18':'18','19':'19','20':'20','21':'21','22':'22','23':'23','24':'24'}"  
name="workedHours" cssClass=" disable inputboxsmall" id="workedHours" onchange="calcTotTime()"/>

那是特定於瀏覽器的,根本不涉及Struts2。

例如,Firefox的行為與您從非常舊的版本開始所描述的行為相同,而在IE6(!)中,如果您按2和5,他將查找“以2開頭”然后是“以5開頭”(它將永遠不會通過鍵盤找到25)。 。

頁面准備就緒后,您可以使用jQuery將自定義行為添加到“選擇”中。

例如,在onkeyup事件中添加一個javascript函數調用,該函數可以記住以前數字的字符,將新字符附加到它們之后,然后將selected屬性重新分配給新的對應元素。

然后,您將不得不處理異常(沒有元素匹配,什么也不做或做什么?),並決定如何使用戶能夠從頭開始重新啟動。 與瀏覽器一樣,使用計時器也不會出現此問題,但是如果您覆蓋計時器,則應該找到另一種方法(熱鍵或其他方法)。

就個人而言,我不認為覆蓋瀏覽器的行為是一件好事,尤其是因為它們已經針對大多數用例進行了優化...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM