Jquery Chosen和asp Listbox在jquery 1.11.1上获得多个值并选择了1.4.2

时间:2015-09-22 02:16:47

标签: javascript jquery jquery-chosen

我使用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")));
 });

返回始终为[ 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] 

我需要结果为&#39; Value1,Value2,Value3&#39;有没有办法得到这个结果?

现在解决了..我将代码更改为此

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

                      console.log(foo);

1 个答案:

答案 0 :(得分:1)

.val()方法获取/设置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);
});