Javascript 如何使用Jquery获取隐藏字段上的所有列表框选项?

Javascript 如何使用Jquery获取隐藏字段上的所有列表框选项?,javascript,c#,jquery,listbox,Javascript,C#,Jquery,Listbox,我有一个两个listbox,左边的listbox包含值,右边的listbox在编译时没有任何内容 <div class="row" style="padding-top:10px;"> <div class="col-lg-3"> <asp:ListBox ID="lstLeft" class="form-control" runat="server" SelectionMode="Multiple" Height="220px">

我有一个两个listbox,左边的listbox包含值,右边的listbox在编译时没有任何内容

<div class="row" style="padding-top:10px;">
     <div class="col-lg-3">
          <asp:ListBox ID="lstLeft" class="form-control" runat="server" SelectionMode="Multiple" Height="220px">
              <asp:ListItem Value="transactions.storeid as StoreID">StoreID</asp:ListItem>
              <asp:ListItem Value="YEAR(transactions.Time) Year">Year</asp:ListItem>
              <asp:ListItem Value="MONTH(transactions.Time) Month">Month</asp:ListItem>
              <asp:ListItem Value="transactionsEntry.TransactionNumber">TransactionNumber</asp:ListItem>
              <asp:ListItem Value="transactionsEntry.Quantity">Quantity</asp:ListItem>
              <asp:ListItem Value="items.ItemLookupCode">ItemLookupCode</asp:ListItem>
              <asp:ListItem Value="CONVERT(varchar, CAST(transactionsEntry.Price AS money), 1)*transactionsEntry.Quantity ExtendedPrice">ExtendedPrice</asp:ListItem>
              <asp:ListItem Value="departments.Name as DepartmentName">DepartmentName</asp:ListItem>
              <asp:ListItem Value="categories.Name as CategoryName">CategoryName</asp:ListItem>
              <asp:ListItem Value="items.SubDescription1">SubDescription1</asp:ListItem>
              <asp:ListItem Value="suppliers.SupplierName">SupplierName</asp:ListItem>
              <asp:ListItem Value="suppliers.Code">Code</asp:ListItem>
          </asp:ListBox>
     </div>
     <div class="col-lg-1">
          <input type="button" id="left" value="<<" />
          <input type="button" id="right" value=">>" />
     </div>
     <div class="col-lg-3">
          <asp:ListBox ID="FirstRight" runat="server" SelectionMode="Multiple" Width="100%" Height="220"></asp:ListBox>
          <asp:HiddenField ID="HiddentxtSelectedColumn" runat="server" />
     </div>
 </div>
我刚刚创建了名为
hiddenTextField
的隐藏字段变量,一旦得到结果,我计划移动到隐藏字段。 但它不能正常工作

当我第一次单击按钮时,警告框“Hidden Field=”为空。但它必须显示移动的某个值。当我第二次单击时,它会显示移动的前一个,而不会显示第二个。第三次显示所有的值,重复第一个值几次 塔克斯

这是你的答案

$('#right').click(function () {
           var options = $("[id*=lstLeft] option:selected");

            for (var i = 0; i < options.length; i++) {
                var opt = $(options[i]).clone();

                $(options[i]).remove();
                $("[id*=FirstRight]").append(opt);
            }

            var hiddenTextField = '';
            //alert("Hidden Field = " + hiddenTextField.length);
            $('#FirstRight option').each(function () {
                if (hiddenTextField.length > 0) {
                    hiddenTextField = hiddenTextField + "," + $(this).val();
                    alert("If calling");
                    //alert("This =" + $(this).val());
                }
                else {
                    hiddenTextField = $(this).val();
                    alert("else calling");
                    //alert("else This =" + $(this).val());
                }
            });
            //alert("Hidden Field = " + hiddenTextField);
            $('#HiddentxtSelectedColumn').val(hiddenTextField);
            alert($('#HiddentxtSelectedColumn').val());
        });
$('#right')。单击(函数(){
var options=$(“[id*=lstLeft]选项:选中”);
对于(变量i=0;i0){
hiddenTextField=hiddenTextField+”,“+$(this.val();
警报(“如果呼叫”);
//警报(“This=“+$(This).val());
}
否则{
hiddenTextField=$(this.val();
警报(“其他呼叫”);
//警报(“else This=“+$(This).val());
}
});
//警报(“隐藏字段=“+hiddenTextField”);
$('HiddentxtSelectedColumn').val(hiddenTextField);
警报($('HiddentxtSelectedColumn').val();
});

这肯定会起作用

“但它不能正常工作”,这意味着什么,你犯了什么错误getting@Rahul当我第一次单击按钮时,
警报框“Hidden Field=“
empty”。但它必须显示移动的某个值。当我第二次单击时,它会显示移动的前一个,而不会显示第二个。第三次显示所有值,并通过多次重复第一个值,您确定第一个警报应该有一个值,因为您在这里使用了两个警报。@Rahul first alert显示的长度为0,因此显然它将转到else语句,对吗?。然后它必须存储值
hiddenTextField=$(this.val()以这种方式对吗?。此警报框
警报(“else this=“+$(this).val())也不显示,然后下一个警报显示为空
警报(“隐藏字段=“+hiddenTextField”)
Try
hiddenTextField.push($(this.val())
而不是
hiddenTextField=$(this.val()
var hiddenTextField = '';
$('#right').click(function () {
    alert("Hidden Field = " + hiddenTextField.length);
    $('#FirstRight option').each(function () {
         if (hiddenTextField.length > 0) {
              hiddenTextField = hiddenTextField + "," + $(this).val();
         }
         else {
              hiddenTextField = $(this).val();
              alert("else This =" + $(this).val());
         }
    });
    alert("Hidden Field = " + hiddenTextField);
});
$('#right').click(function () {
           var options = $("[id*=lstLeft] option:selected");

            for (var i = 0; i < options.length; i++) {
                var opt = $(options[i]).clone();

                $(options[i]).remove();
                $("[id*=FirstRight]").append(opt);
            }

            var hiddenTextField = '';
            //alert("Hidden Field = " + hiddenTextField.length);
            $('#FirstRight option').each(function () {
                if (hiddenTextField.length > 0) {
                    hiddenTextField = hiddenTextField + "," + $(this).val();
                    alert("If calling");
                    //alert("This =" + $(this).val());
                }
                else {
                    hiddenTextField = $(this).val();
                    alert("else calling");
                    //alert("else This =" + $(this).val());
                }
            });
            //alert("Hidden Field = " + hiddenTextField);
            $('#HiddentxtSelectedColumn').val(hiddenTextField);
            alert($('#HiddentxtSelectedColumn').val());
        });