2016-06-23 14 views
-1

2つのフォームを検証したいと思います。 MAINフォームはe.q. 会社モデルと第2のフォームは企業アドレスモデルです。角型検証 - フォーム形式

CompanyAddressFormは、CompanyFormです。 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つのフォームに名前を持っていませんでした: '<フォーム名= "MainForm">と '

'? – AlainIb

+0

はい。入力の検証でも同じです。 – Nerf

答えて

0

HTML5の仕様(およびXHTML仕様)によれば、フォーム内の別のフォームを持つことが許されていません:

コンテンツモデル: フローコンテンツ、ないフォーム要素の子孫と。 出典:https://www.w3.org/TR/html5/forms.html#the-form-element

したがって、私を強く行動は(ブラウザ間と時間をかけて)によって異なる場合がありますが、お互いにそれらを入れて、あなたのフォームを再構築していないことをお勧め(!)。

+0

Ok、thx。私はそれが許されないと思っていた。だから、メインフォームに反応しないMODAL内部の入力の検証をどうすればできますか? – Nerf

+0

送信ボタンをクリックするだけでなく、フォームを送信するさまざまな方法があるため、フォームの外側にフォーム要素がある場合、ソリューションは完璧ではありません(一部のブラウザでは「ctrl-enter」など)。可能であれば、この場合は避けるべきです。 本当にこのようにする必要がある場合は、 'angular.forEach(、function(field){field。$ setDirty );}); ' – MattDiMu

0

あなたは別の内側に一つの形を持つことができない別のクラスまたはID

を使用して別々に両方のフォームを扱う...これは悪いプログラミングPRACT

+0

しかし、どうすればいいのですか?私は異なるID、名前を入力 "2番目の"フォーム内の名前を設定し、まだmainFormこれらのinpustが有効ではないと言う。 – Nerf

+1

あなたは1つのことを行うことができます、あなたは2つの異なるフォームを定義し、異なるコントローラを設定することができますので、別のフォームの中でフォームを定義する必要はありません。フォームを別々に扱います。 – Deepanjan