код:
$('input.media-checkbox').live('click', function(e){
e.preventDefault();
var that = $(this);
if (that.attr('checked') == 'checked'){
var m = that.attr('media');
var mid = 'verify_' + m;
that.parents('div.state-container').find('ul.' + mid).remove();
that.attr('checked', false);
} else {
var url = AJAX_URL;
$.ajax({
type: 'GET',
url: url,
dataType: 'html',
success: function(data){
that.parents('li').siblings('li.verification').children('div.media-verification').append(data).fadeIn(500);
that.attr('checked', 'checked');
}
});
}
return false;
});
Я ajaxing в форме, затем запускаю событие click на соответствующих флажках для ajax в другой части, если это необходимо. Форма вставлена правильно, и события click запускаются, проверяя поля, которые нужно проверить, и запуская второй ajax, поскольку атрибут checked
флажка изначально был false
.
Что мешает моему сыру, если я ОТКЛЮЧУЮ одну из этих коробок. Несмотря на e.preventDefault()
, атрибут checked
установлен на false
ДО теста, поэтому оператор if
всегда выполняет оператор else
. Я также попробовал это с $.is(':checked')
, поэтому я совершенно сбит с толку.
Похоже, что непроверенное -> проверенное состояние считывает исходное состояние, а проверенное -> непроверенное - нет. Любая помощь?