2013-05-30 2 views
2

Я пытаюсь получить значения из checkboxlist в jquery и в зависимости от того, какое значение есть, установите флажок или снимите флажок. Это то, что у меня есть:jquery asp.net checkboxlist получить значение item

<asp:CheckBoxList CssClass="styled" ID="chkTestTypeEdit" RepeatDirection="Horizontal" style="padding:5px;" runat="server"> 
     <asp:ListItem Value="1" Text="Y/N" /> 
     <asp:ListItem Value="2" Text="Num" /> 
    </asp:CheckBoxList> 

Тогда перед тем модальное всплывающее окно открыто у меня есть этот кусок кода:

$(document).on("click", ".open-EditTest", function() {     
    var optesttype =$(this).data('optesttype');     
    var items = $('#<% = chkTestTypeEdit.ClientID %> input:checkbox'); 
    for (var i = 0; i < items.length; i++) { 

     var val = $('#ctl00_MainContent_chkTestTypeEdit_0').val(); 
     var val2 = $('label[for=" + <%= chkTestTypeEdit.ClientID %> +_0 "]').text(); 
     if (items[i].value == optesttype) { 
      items[i].checked = true; 
      break; 
     } 
    } 
    $('#EditTest').modal('show'); 
}); 

Так optesttype будет иметь 1 или 2, а затем Я пытаюсь сравнить это снова с значением item [i], но это значение всегда «включено». Я попробовал два метода, которые я нашел в сети с var val и val2, но ничего не выбрано. Как вы, ребята, думаете, что мне нужно подойти к этому? Спасибо, Лацьале

ответ

0

Попробуйте следующие:

$("#demo").live("click", function() { 
     var selectedValues = ""; 
     $("[id*=CheckBoxList1] input:checked").each(function() { 
      if (selectedValues == "") { 
       selectedValues = "Selected Values:\r\n\r\n"; 
      } 
      selectedValues += $(this).val() + "\r\n"; 
     }); 
     if (selectedValues != "") { 
      alert(selectedValues); 
     } else { 
      alert("No item has been selected."); 
     } 
    }); 

Проверить следующие:

ASP.NET CheckBoxList Operations with jQuery

2) sample

1

Я решил проблему следующим образом. Мой код ASP.NET для CheckBoxList как ниже

<asp:CheckBoxList ID="chkHourly" runat="server" RepeatLayout="Table" 
RepeatColumns="4" RepeatDirection="Horizontal"> 
<asp:ListItem Value="0">00:00 AM</asp:ListItem> 
<asp:ListItem Value="1">01:00 AM</asp:ListItem> 
<asp:ListItem Value="2">02:00 AM</asp:ListItem> 
</asp:CheckBoxList> 

Сгенерированный HTML будет выглядеть следующим образом ниже

<table id="ctl00_chkHourly" border="0"> 
<TBODY> 
<TR> 
<TD> 
    <INPUT id=ctl00_chkHourly_0 name=ctl00$chkHourly$0 value="" CHECKED type=checkbox>  
    <LABEL for=ctl00_chkHourly_0>00:00 AM</LABEL></TD> 
<TD> 
    <INPUT id=ctl00_chkHourly_1 name=ctl00$chkHourly$1 value="" type=checkbox> 
    <LABEL for=ctl00_chkHourly_1>01:00 AM</LABEL></TD> 
<TD> 
    <INPUT id=ctl00_chkHourly_2 name=ctl00$chkHourly$2 value="" type=checkbox> 
    <LABEL for=ctl00_chkHourly_2>02:00 AM</LABEL> 
</TD> 
    </TR> 
</TBODY> 

Пожалуйста, обратите внимание, что есть лейбл, созданный, кроме каждого входа в таблицу, и когда флажок установлен, значение ввода будет «включено», и то, что вы видите в качестве опции, - это текст ярлыка, в моем случае мне нужен текст, но чтобы получить значение также в раунде, я бы прочитал имя от отдельных полей ввода, которые проверяются. Пожалуйста, см. Приведенный ниже код, который я написал, чтобы прочитать выбранный текст, а также имя выбранного входа, чтобы я мог его разбить и прочитать значение, если это необходимо.

var postData = new Array(); 
$("[id*=chkHourly] input[type=checkbox]:checked").each(function() { 
    alert($(this).next().text()); 
    alert($(this).next().html()); 
    alert($(this).attr("name")); 
    postData.push($(this).next().text()); 
}); 

if (postData.length > 0) { 
    alert("Selected Text(s): " + postData); 
} 
else { 
    alert("No item has been selected."); 
} 
Смежные вопросы