1

它是一个错误吗?此选择有效:

<select id="select_advsels" name="pixel_advsels" multiple>
<option>All</option><option>Mobvista (TS-126)</option>
</select>

jQuery('#select_advsels').val(['Mobvista (TS-126)']);

http://jsfiddle.net/w2xtU/

当 OPTION 中的两个单词被多个空格隔开时,jQuery 选择失败:

<select id="select_advsels" name="pixel_advsels" multiple>
<option>All</option><option>Mobvista  (TS-126)</option>
</select>

jQuery('#select_advsels').val(['Mobvista  (TS-126)']);

http://jsfiddle.net/3FrR7/2/

4

2 回答 2

4

在呈现 html 时,它会用一个空格替换连续空格:

jQuery('#select_advsels option').each(function(){
    console.log(this.value.replace(' ', '-'));
})

演示:小提琴

参考这个

HTML 对空白字符(空格、制表符和换行符)的处理与普通字符不同。通常,单个空白字符(包括换行符)或一系列空白字符被视为单个空格,并消除前导/尾随空格。这被称为“折叠空白”。因此,以下两段被视为相同

于 2013-10-16T15:21:33.323 回答
1

正如已经解释过的,浏览器将多个连续的空白字符折叠成一个空格。如果您绝对需要保留双空格,则在声明标签value时使用显式属性:<option>

<option value="Mobvista  (TS-126)">Mobvista  (TS-126)</option>

显示给用户的值只会有一个空格,但是使用 JavaScript 时提交或匹配表单时发送的值会保留多个空格。

更新了 jsFiddle

于 2013-10-16T15:26:32.887 回答