.attr (“отключенный”, “отключенный”) проблема

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

$('.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 инициирован (и предоставление меня назад правильное поле ввода), таким образом, я уверен, что мой, если оператор работает. Но когда я осматриваю DOM с поджигателем в Firefox, отключенный атрибут не появляется.

кто-то может помочь мне?

PS: не фокусируйтесь на функции или, если сам оператор, хорошо работает его просто, что attr, который не работает на отключенный...

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

21
задан meo 15 November 2012 в 14:48
поделиться

4 ответа

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

ЕГО ОШИБКА FIREBUG !!!

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

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

обновление: 2 июня 2012 г .: Firebug в FF11 все еще имеет эту ошибку.

40
ответ дан 29 November 2019 в 06:56
поделиться

UPDATED

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

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

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

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

8
ответ дан 29 November 2019 в 06:56
поделиться

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

$(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
  }
})
7
ответ дан 29 November 2019 в 06:56
поделиться

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
  }
});
-2
ответ дан 29 November 2019 в 06:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: