Jquery Chosen 和 asp Listbox 在 jquery 1.11.1 和 chosen 1.4.2 上获得多个值

Jquery Chosen and asp Listbox get multiple values on jquery 1.11.1 and chosen 1.4.2

我用jquery 1.11.1选择了1.4.2多选

$("#<%=ddlOrg.ClientID %>").change(function() {
     $("#<%=ddlOrgResult.ClientID %>").val($(this).val($(this).find("option:selected").attr("org_unit_mast_Code")));
 });

returns 总是 [ object object ] 。当我使用 jquery 1.4.1 但当我更改为 jquery 1.11.1 时它有效,结果变为 [object object] 。为什么以及如何解决这个问题?

我用 ASP 列表框

 <asp:ListBox ID="ddlOrg" SelectionMode="Multiple" data-placeholder="Pilih …" multiple class="chosen-select" DataSourceID="odsOrgUnit" DataValueField="org_unit_mast_Code" DataTextField="org_unit_mast_Name" runat="server" ></asp:ListBox> 

我在控制台上得到了这个结果

[select#MainContent_ddlOrg.chosen-select, input#MainContent_ddlOrgArray, prevObject: jQuery.fn.init[1], context: document] 0: select#MainContent_ddlOrg.chosen-select 1: input#MainContent_ddlOrgArray context: document length: 2 prevObject: jQuery.fn.init[1] proto: jQuery[0] 

我需要结果,因为 'Value1, Value2, Value3' 有什么办法可以得到这个结果吗?


现在解决了..我把代码改成这个

  var foo = [];
                      $(this).find("option:selected").each(function (i, selected) {
                          foo[i] = $(selected).val;
                      });

                      console.log(foo);

.val() 方法 gets/sets DOM 元素的 .value 属性。 .value只能是一个字符串,一个DOMString。由于您将 jQuery 对象传递给该方法,因此该值将转换为字符串。 [object Object] 是传递的 jQuery 对象的字符串表示形式。哪个 jQuery 对象? val 方法调用的返回对象作为 setter: .val($(this).val(...))

看来您想同时修改2个元素的value 属性。为此,您应该使用 val 方法 2 次或使用 jQuery add 方法创建 2 个元素的集合。

$("#<%=ddlOrg.ClientID %>").change(function() {
   var attr = $(this).find("option:selected").attr("org_unit_mast_Code");
   $("#<%=ddlOrgArray.ClientID %>").add(this).val(attr);
});