如何将jquery数组分配给asp.net隐藏字段

时间:2013-08-29 10:28:30

标签: c# jquery asp.net listbox

我通过jquery获取列表框中的所有选定值。在我的列表框中,我也完成了多选属性。我无法将我在列表框中选择的所有值检索到隐藏字段。只有最后选择的项目正在检索。如何使用jquery获取hiddenfield中的所有值?请帮忙。代码如下。

 $("#button1").click(function () {
                $("#ctl00_BodyContentPlaceHolder_ListBox1 > option:selected").each(function(){
               //var selectedText = $('#ctl00_BodyContentPlaceHolder_ListBox1 option:selected').text();
                //alert(selectedText); 

            $(this).remove().appendTo("#ctl00_BodyContentPlaceHolder_ListBox2");

              var itemArray = []; 
              var arr = new Array();
                $('#ctl00_BodyContentPlaceHolder_ListBox2 :selected').each(function(i, selected){ 
                itemArray[i] = $(selected).text(); 

                $('#ctl00_BodyContentPlaceHolder_hdnListItems').val(itemArray[i]);
                alert(itemArray[i]);
                });
        });
    });

2 个答案:

答案 0 :(得分:0)

我认为是因为你在这里设置了最后一个值

$('#ctl00_BodyContentPlaceHolder_hdnListItems').val(itemArray[i]);

在最后一个循环之后itemArray[i]是最后一个项目

答案 1 :(得分:0)

显然,由于您将所选列表项vlaue附加到foreach循环中的隐藏字段,因此您只能保存最后一个值。

更正的功能发布在下面。

  $("#button1").click(function() {
    var itemArray = [];

        $("#ctl00_BodyContentPlaceHolder_ListBox1 > option:selected").each(function() {

            $(this).remove().appendTo("#ctl00_BodyContentPlaceHolder_ListBox2");

            var arr = new Array();
            $('#ctl00_BodyContentPlaceHolder_ListBox2 :selected').each(function(i, selected) {
                itemArray.push($(selected).text());
            });
        });
        $('#ctl00_BodyContentPlaceHolder_hdnListItems').val(itemArray);
    });

检查并告诉我结果。