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