2017-02-22 50 views
0

Название говорит все ... Я читал несколько сообщений на Stackoverflow, а также the documentation, но пока не нашел удовлетворительного объяснения.AngularJS: ng-disabled удаляет входное значение?

Если активировано ng-disabled, введенное значение внутри тега удалено?

Позвольте мне проиллюстрировать пример.

<form method="POST" name="form" action=""> 
    <select ng-model="model[1]" 
      ng-options="i for i in fc.items[1]" 
      ng-disabled="true"> 
    </select> 
    <select ng-model="model[2]" 
      ng-options="i for i in fc.items[2]" 
      ng-disabled="false"> 
    </select> 
    <input type="submit" value="Next"/> 
</form> 

Входное значение: results[2]:number:1. (number:1 - ожидаемый результат).

Когда я удаляю ng-disabled, результат results[1]:number:1results[2]:number:1.

Я собираюсь заключить, что ng-disabled влияет на входное значение, но я хотел бы знать, знает ли кто-нибудь, как получить все входные значения (если это возможно).

ответ

3

No.

Отключение входа просто сделать его непригодным для использования и unclickable. Значение по-прежнему сохраняется.

Ваше значение не отправляется, потому что отключенные элементы в form не будут отправлены.


От W3C Input disabling:

Отключенное входной элемент является непригодным для использования и не-интерактивными.

Атрибут disabled может быть настроен так, чтобы пользователь не использовал элемент до тех пор, пока не будет выполнено какое-либо другое условие (например, , выбрав флажок и т. Д.). Затем JavaScript мог удалить значение и сделать элемент полезным.

Совет. Элементы входного сигнала, отключенные в форме, не будут отправлены.

1

Нет, он не удаляет входное значение вообще. Это просто делает вход недоступным. ng-disabled директива просто добавляет/удаляет атрибут disabled, основанный на переданном выражении.

ng-disabled="expression" 

Посмотрите на ngDisabled API для более видений here. Внутри он вызывает attr.$set(attrName, !!value), который решает добавить/удалить атрибут из элемента DOM за сценой из этого метода (Source Code).

 Смежные вопросы

  • Нет связанных вопросов^_^