[jQuery] 使用jQuery对 select 取得多个项目的 val 和 text

select 下拉式选单可以是单项选单﹑也可以是多项选单, jQuery 在取 select 下拉式选单的值时,单项选单比较好处理,而这篇文章是对下拉式选单的多项选单(SelectionMode="Multiple")如何取值做一个範例。

首先使用 ASP.NET 的 ListBox 来创建一个 select 选单 ,并且将 id 命名为 list_A :

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><asp:ListBox ID="list_A" runat="server" SelectionMode="Multiple">        <asp:ListItem Value="A1">项目1</asp:ListItem>        <asp:ListItem Value="A2">项目2</asp:ListItem>        <asp:ListItem Value="A3">项目3</asp:ListItem></asp:ListBox></asp:Content>

ASP.NET在前端会将 ListBox 直译为 html 的 select 元件,若有使用 MasterPage 将 ListBox放在 Content 元件里,并且 ContentPlaceHolderID="ContentPlaceHolder1", 其 name 和 id 都会在前面加上 ctl00$ContentPlaceHolder1$ 名称,如下面程式已经直译为 html 的 select 元件:

<select size="4" name="ctl00$ContentPlaceHolder1$list_A" multiple="multiple" id="ContentPlaceHolder1_list_A" ><option value="A1">项目1</option><option value="A2">项目2</option><option value="A3">项目3</option></select>

这里使用 jQuery 来取得 select 元件的多个值,用 $('select[id*=list_A]') 取得所有 id 名称有 list_A 的 select 元件, $('select[id*=list_A]').val() 会取得 select 项目的值,其值会自动以逗号做区别,若要取得多个已选取(selected)项目的文字,需用 each 迴圈式写法处理:

<script>//多个值会自动以逗号做区别,例如 A1,A2,A3。var s_value = $('select[id*=list_A]').val();//用 each 迴圈式写法加上逗号处理,其项目文字例如 项目1,项目2,项目3。var s_name = "";$("select[id*=list_A]").find(":selected").each(function () {   s_name = s_name + this.text + ",";});</script>

若用下面语法取文字,在多选取项目时,其已选取的项目文字不会自动做逗号分别,例如 项目1项目2项目3。

<script>var s_name = "";var s_name = $("select[id*=list_A] :selected").text();</script>

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章