Установите флажки, загруженные из JQuery Load - PullRequest
3 голосов
/ 18 января 2010

Я загружаю набор флажков в div, используя Jquery и функцию загрузки. Мой код

$("#cb-list").load('www.someurl.com');

, где www.someurl.com возвращает html для нескольких флажков, например

<input type="checkbox" value="sddfdsf" name="cb[]" id="a1" />
<input type="checkbox" value="sddfdsf" name="cb[]" id="b2" />

Я хочу просмотреть чекбоксы, которые были возвращены, а затем проверить некоторые из них на основе параметров (я хочу сделать это на странице, которая загружает чекбоксы, а не на странице, которая загружается).

Как бы я поступил так с помощью jQuery? Так, например, у меня может быть 3 флажка с идентификаторами a1, b2, c3, и я хотел бы проверить b2 и c3. Я бы обычно делал

$("#b2").attr("checked") = 'checked';
$("#c3").attr("checked") = 'checked';

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

Спасибо

Ответы [ 2 ]

4 голосов
/ 18 января 2010

Предполагая, что ваш вызов AJAX возвращает строку с HTML-кодом, который вы разместили выше, вам нужно загрузить эту строку в переменную jQuery:

//put html into a string
var myCheckboxes = $("#cb-list").load('www.someurl.com');
/*... possibly perform some validations here ... */
var $myCheckboxes = $(myCheckboxes);

Затем установить индивидуально проверенный:

$myCheckboxes.filter("#b2").attr('checked', true);
$myCheckboxes.filter("#c3").attr('checked', true);

Или установите все, используя .each():

$myCheckboxes.each(function(){
    $(this).attr('checked', true);
});

Я думаю, тогда вы захотите добавить это к чему-то.Здесь мы добавляем к div с id ='MyDiv'

$myCheckboxes.appendTo("#MyDiv");
3 голосов
/ 18 января 2010

должно быть $("#b2").attr('checked', true);

...