Включить флажок внутри события успеха Ajax? - PullRequest
1 голос
/ 17 августа 2011

Я использую следующую строку, чтобы отключить все флажки на странице:

$('input[type=checkbox]').attr('disabled', 'true');

Затем я хочу снова включить их, если вызов ajax завершился успешно, но, похоже, это не сработает:

               $.ajax({
                   url: 'EditService.svc/whatever',
                   type: 'GET',
                   data: { "code": code },
                   dataType: 'json',
                   success: function () {
                       //clear status
                       $('.EditStatus').html('')
                       //reenable all checkboxes
                       $('input[type=checkbox]').attr('disabled', 'false');
                   },
                   error: function (a, b, c) {
                       $('.EditStatus').html("Database Error!");
                   }
               });

Я не понимаю, почему.// Очистить статусную часть работает нормально.

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

Строка 'true' оценивается как true, потому что это непустая строка, в то время как 'false' не является ложной, поскольку она не пустая. Попробуйте:

$('input[type=checkbox]').attr('disabled', false);

и пока это работает:

$('input[type=checkbox]').attr('disabled', 'true');

Вы все равно должны передавать логическое значение вместо строки.

Если вы используете jQuery 1.6+, вы должны использовать .prop.removeProp).

1 голос
/ 17 августа 2011
if jQuery.version < 1.6:
    $('input[type=checkbox]').attr('disabled', false);
else:
    $('input[type=checkbox]').prop('disabled', false);

Примечание: .empty() лучше, чем .html(''). Намерение яснее, и код будет выполняться быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...