首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery-select2显示缺省选择的第一个值

jquery-select2显示缺省选择的第一个值
EN

Stack Overflow用户
提问于 2016-03-31 07:08:13
回答 3查看 2K关注 0票数 3

我使用下面的代码来填充多项选择:

代码语言:javascript
复制
    <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上,我打电话给你:

代码语言:javascript
复制
 $("#deviceTypes").attr("multiple","true");
 $("#deviceTypes").select2();

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

EN

回答 3

Stack Overflow用户

发布于 2016-03-31 16:02:25

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

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

那么,将key与上述属性之一结合使用是误导和错误的。

删除key,改用label

代码语言:javascript
复制
    <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的操作属性,其类型List (或其他任何类型)在第一次读取时必须为null,并且在下次读取时包含选定的值。

票数 2
EN

Stack Overflow用户

发布于 2016-04-04 13:18:02

仍然没有得到你想要的东西。

但是我认为你可以用一些java脚本代码来做这件事。创建一个s:selectsj:select,其中包含所有数据的选项,但通过style="display: none"使其不可见。让第二个选择框作为普通的html select,并带有一个空的选项,这是用户看到的。因此,当页面加载但用户看不到时,您的主选项框将在第一次加载时加载。

您可以在用户执行某些操作时使其可见,例如单击复选框。

但是,提交表单并不会将所有选择选项传递给服务器,只有选定的选项才会发送到服务器。

票数 1
EN

Stack Overflow用户

发布于 2016-04-05 09:24:37

我可以在页面加载时使用以下代码:

代码语言:javascript
复制
$("#deviceTypes").attr("multiple","true");
$("#deviceTypes").select2();
var selectedDevice=[];
var deviceList = '<s:property value="serviceVO.packagedService.deviceType" />';
$.each(deviceList, function(index,value) {
    selectedDevice.push(value); 
    });
 $("#deviceTypes").select2("val", selectedDevice);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36321338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档