如何获取循环生成的一组下拉菜单的唯一 ID?
How to get Unique ID for a group of dropDowns generated by a loop?
请帮我解决以下问题。
代码:
<%for(int ind=0;ind<15;ind++){%>
<tr>
<struts-el:select name="OpEnh01pagSincomModelMaintanenceFormBean" property="mdlCode" styleId="mdlDrpDown_+'<%=ind %>'" onchange="modelCodeChanged(this.id)">
<struts-el:options collection="listmodelCodes" property="modelCode" labelProperty="modelCodeDesc" />
</struts-el:select>
</tr>
<%}%>
1) 我想要 15 行中的 15 个下拉菜单。我想要 dropDown 的索引来识别在 JavaScript.
中修改了哪个 dropDown
2) 我想获得一个唯一的 id,以便我可以使用 onChangeEvent 调用的 JavaScript 中的 dom 访问它。
我有一个表单 bean 名称属性 mdlDrpDown1、mdlDrpDown2 等等..
我试过这种格式:styleId="mdlDrpDown_+'<%=ind %>'"
但无法获取它,因为 styleId,属性 属性不是 runTimeExpr。
您的 styleId 的格式将生成如下 ID:
id="mdlDrpDown_+'1'"
id="mdlDrpDown_+'2'"
你应该这样写styleId:
styleId="mdlDrpDown_<%=ind %>"
那么 id 将是这样的:
id="mdlDrpDown_1"
id="mdlDrpDown_2"
您正在为 select
使用动态 属性 名称 mdlCode<%=ind %>
,如果在表单 bean 中找不到 getter 和 setter,则 No getter method Exception will be raised
,为了避免这种情况,我们可以使用index based properties
(它可以根据索引保存多个值,索引值将按照元素在页面中出现的顺序排列)而不是single properties
(它只能保存一个值)。
试试下面的代码:
FormBean:
//create getter and setter for `mdlCode` using String[], so it can hold dynamic values.
String[] mdlCode;
public String[] getMdlCode() {
return mdlCode;
}
public void setMdlCode(String[] mdlCode) {
this.mdlCode=mdlCode;
}
JSP:
<%for(int ind=0;ind<15;ind++) {
String id = "mdlDrpDown_"+ind;
%>
<tr>
<!-- change property from `property="mdlCode<%=ind %>"` to property='mdlCode' -->
<struts-el:select name="OpEnh01pagSincomModelMaintanenceFormBean" property="mdlCode" styleId="<%=id %>" onchange="modelCodeChanged(this.id)">
<struts-el:options collection="listmodelCodes" property="modelCode" labelProperty="modelCodeDesc" />
</struts-el:select>
</tr>
<%}%>
请帮我解决以下问题。
代码:
<%for(int ind=0;ind<15;ind++){%>
<tr>
<struts-el:select name="OpEnh01pagSincomModelMaintanenceFormBean" property="mdlCode" styleId="mdlDrpDown_+'<%=ind %>'" onchange="modelCodeChanged(this.id)">
<struts-el:options collection="listmodelCodes" property="modelCode" labelProperty="modelCodeDesc" />
</struts-el:select>
</tr>
<%}%>
1) 我想要 15 行中的 15 个下拉菜单。我想要 dropDown 的索引来识别在 JavaScript.
中修改了哪个 dropDown2) 我想获得一个唯一的 id,以便我可以使用 onChangeEvent 调用的 JavaScript 中的 dom 访问它。
我有一个表单 bean 名称属性 mdlDrpDown1、mdlDrpDown2 等等..
我试过这种格式:styleId="mdlDrpDown_+'<%=ind %>'"
但无法获取它,因为 styleId,属性 属性不是 runTimeExpr。
您的 styleId 的格式将生成如下 ID:
id="mdlDrpDown_+'1'"
id="mdlDrpDown_+'2'"
你应该这样写styleId:
styleId="mdlDrpDown_<%=ind %>"
那么 id 将是这样的:
id="mdlDrpDown_1"
id="mdlDrpDown_2"
您正在为 select
使用动态 属性 名称 mdlCode<%=ind %>
,如果在表单 bean 中找不到 getter 和 setter,则 No getter method Exception will be raised
,为了避免这种情况,我们可以使用index based properties
(它可以根据索引保存多个值,索引值将按照元素在页面中出现的顺序排列)而不是single properties
(它只能保存一个值)。
试试下面的代码:
FormBean:
//create getter and setter for `mdlCode` using String[], so it can hold dynamic values.
String[] mdlCode;
public String[] getMdlCode() {
return mdlCode;
}
public void setMdlCode(String[] mdlCode) {
this.mdlCode=mdlCode;
}
JSP:
<%for(int ind=0;ind<15;ind++) {
String id = "mdlDrpDown_"+ind;
%>
<tr>
<!-- change property from `property="mdlCode<%=ind %>"` to property='mdlCode' -->
<struts-el:select name="OpEnh01pagSincomModelMaintanenceFormBean" property="mdlCode" styleId="<%=id %>" onchange="modelCodeChanged(this.id)">
<struts-el:options collection="listmodelCodes" property="modelCode" labelProperty="modelCodeDesc" />
</struts-el:select>
</tr>
<%}%>