![](/img/trans.png)
[英]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.