2016-06-23 95 views
-1

我想驗證兩種形式。 MAIN表格適用於e.q.爲公司模型和第二種形式是爲公司地址模型。角度表單驗證 - 表單形式

CompanyAddressFormCompanyForm之內。 我在驗證CompanyForm時遇到問題。這取決於CompanyAddressForm驗證,我不想這樣做。

// Main form 
<form ...> 
    <input ... required /> 
    // MODAL 
    <button submit ... ng-disabled=MainForm.$invalid> 
</form> 

// Second form is in modal 
<form. ..> 
    <input ... /> 
    <button submit=SecondForm.$invalid /> 
</form> 

//並且有問題。

+0

?你在2種形式像這樣有一個名字:'< form name =「MainForm」>'和'

'? – AlainIb

+0

是的。並在輸入驗證相同。 – Nerf

回答

0

根據HTML5規範(和XHTML規範),它是不允許有一個表格內的另一種形式:

內容模型: 流量的內容,但沒有表單元素後裔。 來源:https://www.w3.org/TR/html5/forms.html#the-form-element

因此我強烈建議你調整你的形式,而不是把它們放到對方,行爲可能會有所不同(跨瀏覽器和隨着時間的推移)(!)。

+0

好的,thx。我在想這是不允許的。那麼我怎樣才能在MODAL中對主窗體沒有反應的輸入驗證呢? – Nerf

+0

由於表單元素有不同的提交方式,而不僅僅是通過點擊提交按鈕(例如,在某些瀏覽器中按「Ctrl-enter」),該解決方案將不會完美。如果可能的話,你應該避免這種情況。 如果你真的需要這樣做,你需要像這樣手動觸發驗證: 'angular.forEach(,function(field){field。$ setDirty );});' – MattDiMu

0

處理這兩種形式seperately使用不同的class和id

你不能讓裏面一個又一個的形式......這是一個不好的編程PRACT

+0

但我該怎麼做?我在「second」形式中設置了不同的ID,名稱,並且mainForm仍然表示這些inpust是無效的。 – Nerf

+1

你可以做一件事,你可以定義兩種不同的形式,併爲它設置不同的控制器,所以你不需要在另一種形式內定義表單,這是一種不好的做法。分開處理表格。 – Deepanjan