JQuery追加到SELECT(有多个选择)不会工作

时间:2015-09-29 17:01:38

标签: jquery select append

我首先要说的是,如果我想在我的PHP文件中接收一个表单并阅读已发送的select的多个值,它的工作原理如下:

foreach ($_POST["selectaddedsubj"] as $selectedOption)
    echo $selectedOption."\n";

并且为了使其起作用,select的名称和id应该是这样的:

<select name="selectaddedsubj[]" id="selectaddedsubj[]" size="3" multiple="multiple">     
</select>

但是,当我使用jQuery向它添加值时,只有从名称中删除[]时它才会起作用:

$("#selectaddedsubj").append($('<option>', {
    value: subjname,
    text: subjname,
    selected: 'selected'
}));

而不是$("#selectaddedsubj[]").append不能工作...... :(

我可以通过表单的SELECT变量以不同的方式在我的PHP页面上接收多个选择,而不是使用&#34; []&#34;在我的表格上?

1 个答案:

答案 0 :(得分:1)

您的问题与jquery documentation page on selectors顶部的id="foo.bar"示例非常相似。 CSS选择器语法需要引用包含特殊字符的标识符。引用它们的简单方法是在每个字符前加上反斜杠:

$("#selectaddedsubj\\[\\]")

(注意:javascript字符串文字中的双反斜杠会在实际字符串中产生单个反斜杠,因此CSS解析器会在此处看到#selectaddedsubj\[\]。)

另一种方法,使用通用属性选择器语法而不是magic # id语法,允许您通过引用整个标识符来避免使用反斜杠:

$("[id='selectaddedsubj[]']")