2017-01-12 3 views
1

Моя задача состояла в том, чтобы динамически добавлять обязательные поля ко всем элементам в каждом состоянии, которое пользователь хотел установить по мере необходимости. В моей базе данных у меня есть таблица, содержащая идентификатор ввода (для каждого ввода есть отдельный идентификатор, конечно) и требуемое поле, которое содержит, если нам нужно добавить обязательное поле во входной элемент (логическое). Каждый раз, когда я переключаю состояния, мне нужно установить все необходимые элементы ввода (если есть необходимые элементы ввода) в это конкретное состояние.Как добавить динамически требуемый элемент ввода?

кто может я напасть на это? это мое soltion, но id dont думаю, что это лучший способ, я работаю с angularjs.

for (var i = 0; i < data.length; i++) {  
    // activate required function 
    v = data[i].Required; 
    if (v) { 
     document.getElementById(data[i].ID).required = true; 
    } 
} 
+0

Что касается jquery, elem.attr ('required') –

+1

Использовать jquery экономно с угловым. В большинстве случаев вы обнаружите, что в структуре уже есть директива, которая будет обрабатывать вашу проблему. Посмотрите на ngRequired – jbrown

+0

Когда я открываю инструмент разработки в google chrome, я вижу, что добавленное обязательное поле было добавлено, но если я хочу добавить ошибку в html, например: «Это поле обязательно», я не могу этого сделать , Если я пишу вручную для элемента html, я могу проверить, не загрязнен или не тронут, и добавить ошибку, но когда я добавляю динамически, я могу сделать это ... любое предложение? @ myke_11j @ jbrown –

ответ

2

Если вы показываете данные также в угловых, например, в ретранслятор, вы можете сделать что-то вроде этого:

<div ng-repeat="field in data"> 
    <input type="text" id="{{ field.ID }}" 
      ng-required="field.Required" /> 
</div> 

директива ng-required динамически устанавливает атрибут required="required", на основании значения имущества Required объекта field.

+0

Это решение не может работать для меня, потому что у меня есть функция, ответственная за каждый раз, когда я изменяю состояние sh, помещает необходимые поля на вход, а эта функция за пределами контроллера, с которой я работаю (я надеваю 't иметь данные в моем конкретном контроллере, и я не хочу передавать эти данные) –

+0

Тогда вам нужно будет включить свой вариант использования в вопрос, быть более конкретным в том, что вы можете и чего вы хотите достичь – devqon

-1

Вы также можете попробовать этот способ.

<form name="course"> 
<div ng-repeat="field in data"> 
    <input type="text" name="{{field.name}}" 
      ng-required="field.Required" /> 
</div> 
</form> 
Смежные вопросы