0

如何将 jquery 多选下拉列表的选定值放入隐藏元素的 id 中?我需要该 id 是一个数组,以便我可以将多选的选定值放入其中。

我尝试的是:

$( "#Myselect" ).change(function(){
    var str = "";
    $( "select option:selected" ).each(function() {
        str += $( this ).val() + " ";
    });
    document.getElementById("objecttype").value = str; 
}).trigger( "change" );

<html:hidden styleId="objecttype" property="objecttype" name="Myobjecttype"/>

但 objecttype 只是一个 id 而不是数组!

4

2 回答 2

0

我假设您希望将此隐藏字段张贴在某处并稍后使用(服务器端或其他)。看看这个 Fiddle: http: //jsfiddle.net/hm71689h/它大致是你想要的。

考虑一下 Haxxxton 刚才所说的:您正在使用分隔符连接值(在此示例中,默认情况下为逗号)。稍后您需要将该值拆分为一个新数组。

此外,在您的代码示例中,您指的是隐藏字段使用:document.getElementById("objecttype") 但您没有使用标识符,您使用了名称。尽管您可能认为它应该相同,但 ID 与元素的名称不同。

于 2014-11-25T08:02:14.737 回答
0

我认为你需要这样的东西:

HTML:

<select name="choice" multiple id="mySelect">
    <option value="0">0</option>
    <option value="1">1</option>
    <option value="2">2</option>
</select>
<input type="hidden" name="myObjecttype" />  

JS:

$('#mySelect').change(function(){
      //brand new array each time
    var foo = [];
      //fills the array
    foo = $("option:selected", this).map(function(){ return $(this).val() }).get();
      //fills input with vals, as strings of course
    $("input[name='myObjecttype']").val(foo);
      //logs an array, if needed
    console.log($("input[name='myObjecttype']").val().split(','));
});  

不要忘记隐藏的输入不能存储数组/对象数据,只能存储字符串。但是你可以很容易地制作数组。

请参阅工作 jsfiddle:http: //jsfiddle.net/sfvx5Loj/1/

于 2014-11-25T08:03:13.583 回答