jQuery - найти элемент управления, используя пользовательский атрибут - PullRequest
0 голосов
/ 22 февраля 2012

Я использую контроль CheckBoxList от Asp.Net.Чтобы получить выбранные флажки, я добавляю настраиваемый атрибут для значения после привязки данных к списку флажков.

Я могу получить отмеченные флажки в jQuery, но я не знаю, как найти конкретный флажок, используя этотПользовательский атрибут в списке флажков.

вот код:

После привязки данных в файле .cs:

    foreach (ListItem li in cblRequestTypes.Items)
        li.Attributes.Add("itemValue", li.Value); 

Чтобы получить выбранные чекбоксы:

$(":checkbox").each(function() {
              if (this.checked) {

                selectedChecks += $(this).parent().attr("itemValue") + "~";

              }
            });

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

var id = $.QueryString["id"]
$(id.split("~")).each(function (i, item) {
                $("checkbox[itemValue=" + item +"]").attr('check',checked');

            });

Вот как отображается HTML для CheckBoxList:

<span itemValue="3"><input id="chkBoxList_0" type="checkbox" name="chkBoxList$0" /><label for="chkBoxList_0">Text 1</label></span>
<span itemValue="5"><input id="chkBoxList_1" type="checkbox" name="chkBoxList$1" /><label for="chkBoxList_1">Text 2</label></span>
<span itemValue="6"><input id="chkBoxList_2" type="checkbox" name="chkBoxList$2" /><label for="chkBoxList_2">Text 3</label></span>
<span itemValue="7"><input id="chkBoxList_3" type="checkbox" name="chkBoxList$3" /><label for="chkBoxList_3">Text 4</label></span>
<span itemValue="8"><input id="chkBoxList_4" type="checkbox" name="chkBoxList$4" /><label for="chkBoxList_4">Text 5</label></span>
<span itemValue="9"><input id="chkBoxList_5" type="checkbox" name="chkBoxList$5" /><label for="chkBoxList_5">Text 6</label></span>

Ответы [ 2 ]

2 голосов
/ 22 февраля 2012
​$("span[itemValue=8] input")​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

Это даст вам флажок в промежутке, где itemValue (в этом примере) равно 8.

Как я уже сказал в моем комментарии, вас немного запутываетваш атрибут value в элементах span, и вас это тоже смущает, поскольку ваш селектор - $("checkbox[itemValue=" + item +"]"), что не имеет особого смысла.

Ваш селектор будет искать элемент checkbox -который не существует;элемент, который вы ищете, это inputtype"checkbox").
И он попытается найти элемент с атрибутом dataValue, который не установлен ни на одном из флажков.делать, так как этот атрибут находится на span .

1 голос
/ 22 февраля 2012

Кто-то еще уже ответил на это, но когда я попытался поднять ответ, он, кажется, был удален.

Попробуйте:

$('span[itemValue=8] input')

(где 8 - идентификатор, который вы хотите найти; в данном примере выбрано 8)

...