[英]How to enable/disable drop down list box in HTML + Javascript/JQuery?
[英]Javascript to enable, disable drop down menu in JSP file having Java code only, no HTML directly
讓我介紹一下設計。
JSP中的每個字段都由Map
。 標簽名稱,輸入類型(下拉菜單或其他),輸入值,默認值等被添加到Map
,例如Map nameAttributes
。 還有另一個類GeneralWriter writer
,我沒有訪問權限,該類從Map
獲取值,解析它們並編寫適當的HTML代碼。
寫入地圖后, writer.writeSelectBox(nameAttributes);
叫做。
現在,要求是:
有一個下拉菜單,取決於其選定的值,某些其他下拉菜單被禁用(在UI中顯示,但不可修改)或啟用。 由於我沒有為添加的字段編寫HTML代碼,因此我無法編寫函數調用事件來完成我的工作。
我觀察到,在字段上的onMouseOut
事件上調用了JS函數,如"View Source"
。 因此,我想我可以在此處編寫代碼來檢查字段值並影響其他下拉菜單。 但是,如果我在JS函數中編寫alert
(只是檢查),它不會警報我,這意味着未調用該函數,並且我無法編寫啟用/禁用代碼。
有什么方法可以完成這項工作。 啟用和禁用應取決於用戶在下拉菜單之一中選擇的內容。
樣例代碼:
<%
Map nameAttr = new HashMap();
nameAttr.put(GeneralConst.INPUT_MESSAGE, Const.MSG_FIELD_NAME);
//.....
writer.writeAllSelectBox(nameAttr);
%>
需要緊急幫助,謝謝。
在JSP頁面的“查看源代碼”中,很明顯,已為某些字段添加了onChange和onMouseOut事件等,並在GeneralWriter
類GeneralWriter
這些內容寫出到輸出流中,如下所示
out.println("<td nowrap><select name=" + strName);
out.println(" style=\"width:" + strWidth + "px\"");
out.println(" onChange ="+onChange);
因此,我在這里添加了自己的方法,而不是使用現有的代碼,並介紹了onChange事件。 您看到的(正確的)“ onChange
”變量是java.lang.String
類型的,這必須從JSP本身傳遞,關於我想要什么行為或為特定JSP調用哪個特定函數。
現在我在JSP中添加了以下內容
<body>
<script>
window.onload = setModeForPara2('MEMBERTYPE','MEMBERSTATE','CKSTATUS') ;
function resetevent(uri){
setModeForPara2('MEMBERTYPE','MEMBERSTATE','CKSTATUS') ;
}
</script>
</body>
其中參數是下拉菜單的名稱,而setModeForPara2()
是要禁用/啟用的JS函數,如我在原始帖子中所述。 它檢查MEMBERTYPE是否為0,然后將禁用狀態和灰色呈現給MEMBERSTATE和CKSTATUS下拉菜單,否則啟用它們並刪除灰色。
當單擊“重置”按鈕以將禁用狀態呈現給“狀態”和“狀態”字段時, resetevent(uri)
也是一個JS函數。
因此,只要有以下情況, setModeForPara2()
調用setModeForPara2()
函數:
1.頁面已加載,
2.第一個下拉菜單(MEMBERTYPE)的值已更改,並且
3.單擊重置按鈕。
解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.