如何将jquery multiselect下拉列表的选定值放入隐藏元素的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并且不是一个数组!
答案 0 :(得分:0)
我假设您希望将此隐藏字段发布到某处并在以后使用(服务器端或其他)。看看这个小提琴:http://jsfiddle.net/hm71689h/这大致是你想要的。
考虑到Haxxxton刚刚说过的内容:您使用分隔符加入值(在此示例中默认使用逗号)。您需要稍后将该值拆分为新数组。
此外,在您的代码示例中,您使用以下内容引用隐藏字段:document.getElementById("objecttype")
但是您没有使用标识符,而是使用了名称。虽然您可能认为它应该是相同的,但ID与元素的名称不同。
答案 1 :(得分: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/