DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> jQuery獲取checkboxlist的value值的方法
jQuery獲取checkboxlist的value值的方法
編輯:關於JavaScript     

CheckboxList是服務器控件,綁定數據容易,服務器端獲取選中值也容易。但是生成的靜態頁面居然沒有ListItem的Value值,所以默認情況下用js在頁面中是取不到ListItem的值的。至於為什麼不顯示value值,我也不清楚,本篇給出一個用jQuery獲取checkboxlist值的方法。

先看看原始的頁面html代碼:

<asp:CheckBoxList runat="server" ID="listTest">
</asp:CheckBoxList>
<input type="button" id="btnShow" value="顯示選中值" />

下面我們綁定checkboxlist,代碼如下:

if (dt != null && dt.Rows.Count > 0)
{
  foreach (DataRow dr in dt.Rows)
  {
    //分別為text值、value值
    listTest.Items.Add(new ListItem(dr["Title"].ToString(), dr["ID"].ToString()));
  }
}

頁面中生成的html代碼如下:

<table id="listTest" border="0"> 
<tr> 
  <td>
    <input id="listTest_0" type="checkbox" name="listTest$0" />
    <label for="listTest_0">基於jQuery的一個震動效果</label>
  </td> 
  </tr>
<tr> 
  <td><input id="listTest_1" type="checkbox" name="listTest$1" />
    <label for="listTest_1">使用css的overflow屬性改變縮略圖大小</label>
  </td>
</tr>
</table>

可以看出checkboxlist轉換為一個表格的形式,並且其中沒有value值。label中的值,即為text值。當點擊它時,也可以選中checkbox,這裡在選checkbox時提高了用戶體驗。
下面進入我們的處理過程,首先,在綁定checkboxlist時,為ListItem每個對象添加一個alt屬性,值保存對應的value值,代碼如下:

if (dt != null && dt.Rows.Count > 0)
{
  foreach (DataRow dr in dt.Rows)
  {
    //分別為text值、value值
    listTest.Items.Add(new ListItem(dr["Title"].ToString(), dr["ID"].ToString()));
  }
  //為ListItem對象添加alt屬性,值保存value值
  foreach (ListItem li in listTest.Items)
  {
    li.Attributes.Add("alt", li.Value);
  }
}

現在,生成的html代碼如下:

<table id="Table1" border="0"> 
<tr> 
  <td>
    <span alt="400"><input id="listTest_0" type="checkbox" name="listTest$0" />
    <label for="listTest_0">基於jQuery的一個震動效果</label></span>
  </td> 
</tr>
<tr> 
  <td><span alt="398"><input id="listTest_1" type="checkbox" name="listTest$1" />
  <label for="listTest_1">使用css的overflow屬性改變縮略圖大小</label></span>
  </td>
</tr>
</table>

從上邊可以看出,多了一個span標簽,裡邊alt的值即為我們需要的value值。使用下邊的jQuery代碼即可獲得:

$(document).ready(function() {
  $("#btnShow").click(function() {
    var valuelist = ""; //保存checkbox選中值
    //遍歷name以listTest開頭的checkbox
    $("input[name^='listTest']").each(function() {
      if (this.checked) {
        //$(this):當前checkbox對象;
        //$(this).parent("span"):checkbox父級span對象
        valuelist += $(this).parent("span").attr("alt") + ",";
      }
    });
    if (valuelist.length > 0) {
      //得到選中的checkbox值序列,結果為400,398
      valuelist = valuelist.substring(0, valuelist.length - 1);
    }
  });
});

以上就是jQuery獲取checkboxlist的value值的方法,不知道大家有沒有真正理解,希望這篇文章能夠幫到大家。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved