<s:select> 使用默认选项为空时出现下拉问题
<s:select> drop down issue when using default option as empty
我正在使用 Map 来填充 Struts2 标记 <s:select >
,观察到当多次提交表单时,列表末尾会添加一个空行。
例如,如果 Map 有 2 个键值对,它显示 3 个记录并在底部附加一个空白记录(不是在顶部——默认情况下)。
Item 1
Item 2
<-blank->
<s:select id="bankAccountId"
name="accountBean.recordDetails.BankAcct.bankAcctId" label=""
headerKey="" headerValue="" list="accountBean.bankAccountMap"
listKey="key" listValue="value" />
<select name="accountBean.recordDetails.BankAcct.bankAcctId">
<option value=""></option>
<option value="51089">BANK XXXX123</option>
</select>
<select name="accountBean.recordDetails.BankAcct.bankAcctId" id="bankAccountId"> <option value="-1" selected="selected">Default values</option> <option value="77746">Details XXXXXX2246</option> <option value="-1" selected="selected"> </option> <---this default value gets appened in the end... </select>
当我使用 s:select 属性时 emptyOption="true"
观察到同样的问题但是当 emptyOption="false"
顶部元素变为非空(我不想要)。
重新提交
<option value="" selected="selected"> </option>
如果在重新提交之前选择了 default/empty 值,则会添加额外选项。.
这可以通过 javascript 或 jQuery 处理吗??
看起来,我认为问题在于您在提交后将默认值添加到地图,因此在页面的下一次渲染中,它已经包含该项目。通常,您应该在 prepare
方法中重新填充地图,这样 -1
键就不会出现在地图中。
我正在使用 Map 来填充 Struts2 标记 <s:select >
,观察到当多次提交表单时,列表末尾会添加一个空行。
例如,如果 Map 有 2 个键值对,它显示 3 个记录并在底部附加一个空白记录(不是在顶部——默认情况下)。
Item 1
Item 2
<-blank->
<s:select id="bankAccountId"
name="accountBean.recordDetails.BankAcct.bankAcctId" label=""
headerKey="" headerValue="" list="accountBean.bankAccountMap"
listKey="key" listValue="value" />
<select name="accountBean.recordDetails.BankAcct.bankAcctId">
<option value=""></option>
<option value="51089">BANK XXXX123</option>
</select>
<select name="accountBean.recordDetails.BankAcct.bankAcctId" id="bankAccountId"> <option value="-1" selected="selected">Default values</option> <option value="77746">Details XXXXXX2246</option> <option value="-1" selected="selected"> </option> <---this default value gets appened in the end... </select>
当我使用 s:select 属性时 emptyOption="true"
观察到同样的问题但是当 emptyOption="false"
顶部元素变为非空(我不想要)。
重新提交
<option value="" selected="selected"> </option>
如果在重新提交之前选择了 default/empty 值,则会添加额外选项。.
这可以通过 javascript 或 jQuery 处理吗??
看起来,我认为问题在于您在提交后将默认值添加到地图,因此在页面的下一次渲染中,它已经包含该项目。通常,您应该在 prepare
方法中重新填充地图,这样 -1
键就不会出现在地图中。