使用默认选项为空时,<s:select>下拉问题

时间:2015-08-03 05:38:30

标签: javascript html forms jsp struts2

我正在使用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时:选择属性emptyOption="true"会出现相同的问题,但当emptyOption="false"顶部元素变为非空(我不想要)时。 重新提交 如果在重新提交默认值/空值之前选择了<option value="" selected="selected"> </option> extral选项。 这可以通过javascript或jQuery进行处理吗?

1 个答案:

答案 0 :(得分:2)

事情看来,我认为问题在于您在提交后将默认值添加到地图中,因此在下一次呈现页面时,它已经包含该项目。通常,您应该使用prepare方法重新填充地图,这样-1密钥就不会出现在地图中。