2015-09-29 33 views
0

我会先说,如果我想获得一个形式,我的PHP文件并读取已发送的选择的多个值,它的工作原理是这样的:JQuery的追加选择(多选)不会工作

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

,并认为,为了使这一目标的工作,选择的名称,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页面上的多重选择不同的方式,而不是使用“[]”将其命名为我的形式?

+0

只有名称必须是这样的,在ID是无关。 – Musa

回答

1

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

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

(注:双反斜线在实际串一个反斜杠一个JavaScript字符串字面量的结果,所以CSS解析器看到#selectaddedsubj\[\]这里。 )

的另一种方法,使用一般的属性选择语法,而不是魔术# ID语法,允许您通过引用整个标识以避免反斜线:

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