javascript - 填充多选下拉列表

标签 javascript jquery sharepoint

我有一个在 CEWP 中使用的 SharePoint jquery 表单,表单上的元素之一是“多选择”元素,它是一个允许多项选择的下拉列表。例如:

 <select name="cars" multiple>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="opel">Opel</option>
    <option value="audi">Audi</option>
 </select>

需要使用 SharePoint 列表中的数据预先选择该元素。我有一个名为“汽车”的列,数据以逗号分隔(例如:Saab、Audi)。

那么,使用 spservices 和 jquery,如何预先选择带有“Saab”和“Audi”的元素? 这是我在 jsFiddle 中的内容: http://jsfiddle.net/rXGmc/ 然后我需要将其应用到共享点。 感谢您提供的任何帮助或见解。

最佳答案

您的 fiddle 无法工作,因为您没有包含 jQuery(在左侧的“框架和扩展”选项中)并且因为您的选择器存在一些问题:

'select[name="cars"] option[value="saab"], select[name="Volvo"] option[value="audi"],option[value="benz"],'
//                              incorrect name here ----^^^^^       and a trailing comma ----------------^

选择器的第一部分:

select[name="cars"] option[value="saab"]

...实际上会选择“saab”选项,但第二部分:

, select[name="Volvo"] option[value="audi"]

...正在尝试选择一个选项元素,该元素是具有 name="Volvo" 的选择元素的子元素,但没有具有该名称的选择。然后是第三部分:

, option[value="benz"],

...正在尝试选择带有“benz”的选项,无论它可能属于哪个选择元素。

但是整个选择器不起作用,因为它有一个尾随逗号。

解决这些问题,它将适用于“saab”和“audi”:

'select[name="cars"] option[value="saab"], select[name="cars"]  option[value="audi"]'

演示:http://jsfiddle.net/rXGmc/2/

话虽如此,一个更简洁的选择是使用 .find().children():

$('select[name="cars"]').children('[value="saab"],[value="audi"]')
                        .attr('selected', 'selected');

演示:http://jsfiddle.net/rXGmc/4/

关于javascript - 填充多选下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17385260/

相关文章:

javascript - AngularJS:使用 'track by' 禁用 ng-repeat 中的过滤器

sharepoint - SharePoint网站定义

javascript - 我试图在单击图像时从 Sharepoint 列表中检索信息

sharepoint - SharePoint 中包含许多网站的顶部导航栏

javascript - 更新到 Chrome v65 并开始收到此错误 : Expected onClick listener to be a function, 而不是收到类型字符串

javascript - 当我点击按钮时,我的输入标签变空

javascript - 了解 JavaScript 中的闭包范围

javascript - 当先前的输入值发生更改时,如何仅获取当前输入的值?

javascript - Jquery HTML 表本身

javascript - 页面重新加载后重新填充 jQuery 文件上传文件列表