2016-08-21 38 views
1

我有一個表單通過一些輸入。有些時候我通過對這種形式的一些輸入有另一種形式。 當我沒有內部表格時,我的父表格是有效的,但是當我有內部原始表格和原始表格有效時(我看到輸入完整)並且內部表格無效,我的原始表格也是無效的。如果點擊submit1我需要保存輸入的原始形式,如果點擊submit2我需要保存內部輸入。angularjs窗體驗證有一個內部形式

在webform中,我們已經對分組進行驗證。在這種情況下,我們是否將這些分組爲webform中的角度驗證?

<form name="original" novalidate class="form-horizontal bv-form"> 
    <div class="col-md-3 col-sm-6" ng-class="{ 'has-error': !original.name.$pristine && original.name.$invalid ,'has-success':!original.name.$invalid}"> 
    <label>Name</label> 
    <input auto-focus class="form-control" type="text" name="name" ng-model="vm.original.name" required /> 
    <i class="form-control-feedback glyphicon" ng-class="{ 'glyphicon-ok' : original.name.$dirty && original.name.$valid , 'glyphicon-remove': original.name.$dirty && original.name.$invalid}" data-bv-icon-for="firstName" ng-show="original.name.$dirty"> 
    </i> 
    <div> 
    <span class="help-block " ng-show="original.name.$invalid && !original.name.$pristine"> 
    name required 
    </span> 
    </div> 
    </div> 
<form name="internal" novalidate class="form-horizontal bv-form"> 
<div class="col-md-3 col-sm-6" ng-class="{ 'has-error': !internal.name.$pristine && internal.name.$invalid ,'has-success':!internal.name.$invalid}"> 
    <label>Name</label> 
    <input auto-focus class="form-control" type="text" name="name" ng-model="vm.internal.name" required /> 
    <i class="form-control-feedback glyphicon" ng-class="{ 'glyphicon-ok' : internal.name.$dirty && internal.name.$valid , 'glyphicon-remove': internal.name.$dirty && internal.name.$invalid}" data-bv-icon-for="firstName" ng-show="internal.name.$dirty"> 
    </i> 
    <div> 
    <span class="help-block " ng-show="internal.name.$invalid && !internal.name.$pristine"> 
    name required 
    </span> 
    </div> 
    </div> 
<button type="submit" id="submit2" class="btn btn-primary blue" ng-click="int=internal.$valid && $scope.save2()"> 
</form> 
<button type="submit" id="submit1" class="btn btn-primary blue" ng-click="original.$valid && $scope.save()"> 
</form> 
+0

我不明白你的問題,但我認爲你可以在你的控制器中執行'if($ scope.internal。$ invalid)'來檢查'internal'表單是否有效,當你提交'original'表單時 – Miqe

+0

謝謝親愛的您的評論。但在這種情況下,我不需要內部輸入,而且我不需要對內部形式有效。因爲內部表單本身有一個提交按鈕。我需要驗證原始表單而不檢查有效性內部表單。實際上,內部形式是一種指令形式,可以在編輯時添加到視圖中。但我不需要隨時更改內部表格。所以我需要檢查原始表單驗證,如果點擊submit1並檢查內部有效性,如果選擇submit2 –

回答

0

我找到了我的解決方案。

在這種情況下,我使用ng-if來防止在提交外部表單時驗證內部表單。

如果客戶端在外部窗體上工作,我隱藏了內部窗體,我可以提交外部窗體。當客戶嘗試提交內部表格時,我會將其展示給客戶,並且我可以驗證內部表單輸入並提交。

0

您應該使用ng-form而不是form如果你嵌套forms一個form內進一步信息,請參閱該ng-form文檔。

表單指令的可嵌套別名。 HTML不允許嵌套 元素。嵌套表單是很有用的,例如,如果需要確定控件子組的有效性。