簡體   English   中英

如何將jquery multiselect下拉列表的選定值放入隱藏元素的ID中

[英]How can I put selected value of jquery multiselect dropdown into a hidden element's id

如何將jquery multiselect下拉列表的選定值放入隱藏元素的ID中? 我需要將該id作為數組,以便可以將multiselect的選定值添加到該數組中。

我試過的是:

$( "#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而不是一個數組!

我假設您希望將此隱藏字段發布到某個地方,然后在以后(服務器端或其他任何方式)使用。 看一下這個小提琴: http : //jsfiddle.net/hm71689h/大概就是您想要的。

考慮到Haxxxton剛才說的內容:您正在使用定界符(在本示例中默認為逗號)連接值。 您稍后需要將該值拆分為一個新數組。

另外,在代碼示例中,您使用的是隱藏字段: document.getElementById("objecttype")但是您沒有使用標識符,而是使用了名稱。 盡管您可能認為應該相同,但是ID與元素名稱不同。

我認為您需要這樣的東西:

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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM