2017-01-12 18 views
1

我的任務是動態地將所需的字段添加到用戶想要根據需要設置的每個狀態的所有元素上。在我的數據庫中,我有一個表,其中包含輸入的id(當然每個輸入都有一個不同的id)以及包含是否需要向輸入元素添加所需字段的必需字段(布爾值)。每當我切換狀態,我需要將所有輸入元素設置爲所需的狀態(如果需要輸入元素)。如何動態添加所需的輸入元素?

我可以攻擊誰? 這是我的解決方案,但ID不認爲這是最好的方式,我正在與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和angular。在大多數情況下,你會發現框架已經有一個指令來處理你的問題。看看ngRequired – jbrown

+0

當我在谷歌瀏覽器打開開發工具,我可以看到所需的字段已添加,但如果我想添加一個錯誤的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"屬性,基於價值field項目的Required財產。

+0

這個解決方案對我不起作用,因爲我有一個函數負責每次我改變一個狀態時sh將所需的字段添加到輸入中,並且這個函數在我使用的控制器之外(我不沒有我的特定控制器中的數據,我不想傳遞這些數據) –

+0

然後,您必須在問題中包含您的用例,更具體地說明您可以做什麼以及想要實現什麼 – devqon

-1

你也可以嘗試這種方式。

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