问题描述
我有一个变量paramMap
,类型是HashMap<String,String>
,它有两个元素:
{"1","areaNo"}
{"2","areaOrgNo"}
以及Struts2的复选框代码如下:
<s:iterator value="paramMap" var="params" status="paramStatus">
<input type="checkBox" name="params" key_id="#paramStatus.index" value="<s:property value="#param.key"/>"
<s:if test="#paramStatus.index=0">
onclick=checkAreaNo()
</s:if>
我想要的逻辑是,当我选中 areaNo
时,areaOrgNo
将被取消选中,我应该如何在 checkAreaNo()
中编写函数 <script></script>
?我写了 checkAreaNo()
如下,但它不起作用:
<script>
function checkAreaNo() {
if ( $(input[key_id='1']).prop("checked") ) {
$(input[key_id='1']).prop("checked",false)
}
}
</script>
解决方法
我不知道您的地图中有哪些元素,但在纯 HTML 中,元素是 DOM,并且您不能对它们使用 OGNL 语法。有关详细信息,请参阅 this 答案。
因此,正如我在对纯 html 标记使用 OGNL 的评论答案中所说,您应该使用 <s:property>
tag 或 JSP EL。
<input type="checkbox" name="params" key_id="<s:property value='#paramStatus.index'/>" value="<s:property value='#params.key'/>" label="<s:property value='#params.value'/>">
或
<input type="checkbox" name="params" key_id="${paramStatus.index}" value="${params.key}" label="${params.value}">