我正在使用下面的代码来填充多重选择:

    <s:select id = "deviceTypes"
            name = "serviceVO.deviceTypes"
        multiple = "multiple"
        required = "true"
  onBeforeTopics = "openLoader"
onCompleteTopics = "closeLoader"
             key = "service.authoring.label.deviceTypes"
         tooltip = "%{getText('service .authoring.label.deviceTypes.info')}"
            list = "deviceTypesList"
         listKey = "value"
       listValue = "name"
        cssClass = "search-val form-control" />

在document.ready上,我正在打电话:
 $("#deviceTypes").attr("multiple","true");
 $("#deviceTypes").select2();

有了它,默认情况下会显示我不希望在页面加载时选择的第一个选项值。我希望用户选择值,一旦用户提交表单,然后在修改页面上,所选值应显示在选择框中,用户可以添加或删除值。

最佳答案

key属性是将三个属性设置为相同值的简写形式:namevaluelabel

如您所知,value(如果存在)预设元素的值,而name用于将参数发送回操作,并在缺少value的情况下预设值。

然后,将key与上述属性之一结合使用会产生误导和错误。删除key,改用label:

    <s:select id = "deviceTypes"
            name = "serviceVO.deviceTypes"
        multiple = "multiple"
        required = "true"
  onBeforeTopics = "openLoader"
onCompleteTopics = "closeLoader"
           label = "service.authoring.label.deviceTypes"
         tooltip = "%{getText('service .authoring.label.deviceTypes.info')}"
            list = "deviceTypesList"
         listKey = "value"
       listValue = "name"
        cssClass = "search-val form-control" />

请注意,serviceVO.deviceTypes必须是带有getter的action属性,其类型为List(或其他类型),该属性第一次为空,并且在下次读取时包含选定的值。

09-30 17:58
查看更多