@Warrangie
Нет

Как выставить disabled на нескольких инпутах в форме?

Ниже представлен код, который показывает или скрывает див с инпутами в зависимости от выбранного пользователем варианта, но форма отправляет все инпуты, чтоб инпуты не отправлялись, нужно добавить атрибут "disabled" к каждому инпуту внутри неактивного дива. Пробовал цеплять $('#s>input').attr('disabled',true); к селектору, не срабатывает. В JS совсем недавно, понять в чем проблема не могу.

<form>
      <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
      {{agent || "agent"}}
      <span class="caret"></span>
      </button>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#" ng-click="s=true;f=false;agent_type='s';">s</a></li>
        <li><a href="#" ng-click="f=true;s=false;gent_type='f';">f</a></li>
      </ul>
<div ng-show="s" id="s">
 <input type="text">
</div>
<div ng-show="f" id="f">
<input type="text">
</div>
</form>
  • Вопрос задан
  • 3156 просмотров
Решения вопроса 1
@Warrangie Автор вопроса
Нет
Проблема решена добавлением к инпутам атрибута ng-disabled, который проверял переменные s и f, соотственно, на true и false.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@BelkinVadim
Frontend разработчик
Можно так
$("input").prop("disabled", true);

Но проблема думаю у вас либо в вызове функции которая делает disabled либо в селекторе (может в живом проекте доп. обертка у поля). Так как $('#s>input').attr('disabled',true); должен срабатывает. Можно живой пример увидеть?
Ответ написан
@Demetros
1. Вместо ng-show использовать ng-if
2. Если вам нужно задизейблить группу инпутов, заключите их в тег <fieldset ng-disabled="condition">
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы