Подтвердить что ты не робот

.attr( "отключено", "отключено" )

У меня есть эта функция, которая отключает атрибут disabled из поля ввода:

$('.someElement').click(function(){     
  if (someCondition) {
     console.log($target.prev('input')) // gives out the right object
     $target.toggleClass('open').prev('input').attr('disabled', 'disabled');
  }else{
     $target.toggleClass('open').prev('input').removeAttr('disabled'); //this works
  }
})

removeAttr отлично работает, но когда мне нужно добавить отключенного снова, он ничего не делает. Мой console.log запускается (и возвращает мне правильное поле ввода), поэтому я уверен, что работает инструкция if. Но когда я проверяю DOM с firebug в firefox, отключенный атрибут не появляется.

Может кто-нибудь мне помочь?

PS: пожалуйста, не сосредотачивайтесь на функции или на самом утверждении if, отлично работает только с этим attr, который не работает для отключенных...

edit: его тип ввода = "скрытый", возможно ли, что отключенный не работает в скрытых полях?

4b9b3361

Ответ 1

Спасибо всем за ваш вклад! Я нашел проблему:

ЕГО ОГНЕТУШЬ ОГНЕТУШЬ!!!

Мой код работает. Я попросил PHP Dev изменить типы ввода, скрытые для ввода типа текста. Функция отключена. Но консоль firebug не обновляет этот статус!

вы можете протестировать эту ошибку firebug самим собой http://jsbin.com/uneti3/3#. спасибо to aSeptik для примера страницы.

update: 2. Июнь 2012: Firebug в FF11 все еще имеет эту ошибку.

Ответ 2

Попробуйте этот обновленный код:

$(bla).click(function(){        
  if (something) {
     console.log($target.prev("input")) // gives out the right object
     $target.toggleClass("open").prev("input").attr("disabled", "true");
  }else{
     $target.toggleClass("open").prev("input").removeAttr("disabled"); //this works
  }
})

Ответ 3

ОБНОВЛЕНО

DEMO: http://jsbin.com/uneti3/3

ваш код неправильный, это должно быть примерно так:

 $(bla).click(function() { 
        var disable =  $target.toggleClass('open').hasClass('open');
       $target.prev().prop("disabled", disable);
  });

вы неправильно используете функцию toggleClass

Ответ 4

Я столкнулся с подобной проблемой, переключая отключенное состояние кнопки! После запуска кнопки removeProp('disabled') кнопка отказалась снова "отключиться"! Я нашел интересное решение: используйте prop("disabled",true), чтобы отключить кнопку и prop("disabled",false), чтобы снова включить ее! Теперь мне удалось переключить состояние "отключено" на моей кнопке столько раз, сколько мне нужно! Попробуйте.

Ответ 5

$("#vp_code").textinput("enable");
$("#vp_code").textinput("disable");

вы можете попробовать его

Ответ 6

Try

$(bla).click(function(){        
  if (something) {
     console.log("A:"+$target.prev("input")) // gives out the right object
     $target.toggleClass("open").prev("input").attr("disabled", "disabled");
  }else{
     console.log("A:"+$target.prev("input")) // any thing from there for a single click?
     $target.toggleClass("open").prev("input").removeAttr("disabled"); //this works
  }
});

Ответ 7

Чтобы добавить отключенный атрибут

$('#id').attr("disabled", "true");

Удаление атрибута Отключено

$('#id').removeAttr('disabled');