Ответ 1
Вместо
.removeProp('disabled')
использование
.prop('disabled',false)
Fiddle: http://jsfiddle.net/kqnZz/6/
Сначала скрипка.
$('#enableButtonB').click(function (e) {
if($(e.target).is(':checked'))
{
$('#myButtonB').removeProp('disabled');
alert('Enable Button B');
}
else
{
$('#myButtonB').prop('disabled', true);
alert('Disable Button B');
}
});
Я пытаюсь использовать методы jQuery .prop()
и removeProp()
для включения и отключения кнопки, основанной на некоторых критериях. Кажется, что он работает нормально, пока элемент removeProp()
не будет вызван. После этого любые последующие вызовы prop()
не могут быть отключены для кнопки.
Каким образом можно включать и отключать элемент повторно?
Вместо
.removeProp('disabled')
использование
.prop('disabled',false)
Fiddle: http://jsfiddle.net/kqnZz/6/
Сначала http://jsfiddle.net/iambriansreed/KxGVa/
Документы jQuery великолепны. removeProp
говорит:
Примечание.. Не используйте этот метод для удаления собственных свойств, таких как отмеченные, отключенные или выбранные. Это полностью удалит свойство и, после удаления, не может быть добавлено снова элементу. Используйте
.prop()
для установки этих свойств вместоfalse
.
Изменить:
.removeProp('disabled')
... до...
.prop('disabled', false)
... и...
.prop('disabled', 'disabled')
... до...
.prop('disabled', true)
Попробуйте, если эта короткая функция решит ваши потребности:
$("#enableButtonB").click(function(){
$("#myButtonB").prop('disabled', function (_, val) { return ! val; });
});
Кредиты для пользователя Взрывоопасные таблетки для этой сладкой функции:)
Эта строка будет действовать как отключенная функция:
$('#myButtonB').prop('disabled', !$('#myButtonB').prop('disabled'));
Если вы используете его внутри функции jquery, вы можете использовать его как:
$('#enableButtonB').on('click', function() {
$('#myButtonB').prop('disabled', !$('#myButtonB').prop('disabled'));
});