Получить значения выбранных флажков из списка проверок asp в jquery - PullRequest
1 голос
/ 21 октября 2011

Я пытаюсь получить выбранное значение (или значения) из списка флажков. Моя проблема в том, что я связываю контрольный список в c #, и он не рендерится с атрибутом «Значение», как если бы я жестко кодировал

<asp:ListItem Value=".." .. />

Мой флажок выглядит так:

<asp:CheckBoxList runat="sever" ID="cblStuff" DataValueField="myID" DataTextField="myName"></asp:CheckBoxList>

Поэтому, когда я пытаюсь использовать jquery и выполнить следующее, он возвращает только «вкл», в отличие от «myID». Я что-то пропустил? У меня сложилось впечатление, что именно для этого предназначен DataValueField? Вот js, который я использую:

$("checkboxlist selector").change(function() {
      $(this).find(":checked").each(function() { alert($(this).val()); });
});

Спасибо.

Ответы [ 4 ]

2 голосов
/ 21 октября 2011

DataValueField - это свойство на стороне сервера, и оно не будет отображаться в формате html, поэтому вы не можете получить значение с помощью jquery или любого другого кода на стороне клиента.

также проверьте связанный вопрос: Где хранятся значения DataValueField для CheckBoxList?

1 голос
/ 21 октября 2011

Вы сможете получить все отмеченные элементы, как это:

$("#<%=cblStuff.ClientID%> input[type=checkbox]:checked").each(function(){
    var val = $(this).attr("value");
});

Я не думаю, что элемент управления CheckBox по умолчанию имеет атрибут value, но CheckBoxList может. В любом случае вы всегда можете добавить атрибут значения.

0 голосов
/ 21 октября 2011
$('#<%= checkboxlist.ClientID %> input:checkbox').change(function () {
if ($(this).is(":checked") && $(this).val() == "DesiredValue")
        alert($(this).val());
});

Это проверит, было ли установлено значение DesiredValue.Событие срабатывает при каждом изменении значения.Вы должны убедиться, что проверен элемент, вызвавший событие, и если он имеет значение, о котором вы заботитесь.

0 голосов
/ 21 октября 2011

Вы можете использовать метод jQuery attr() для получения любого атрибута, официального или иного:

$("checkboxlist selector").change(function() {
    $(this).find(":checked").each(function() {
        alert($(this).attr('DataValueField')); 
    });
});
...