2016-08-21 40 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不允许嵌套 元素。嵌套表单是很有用的,例如,如果需要确定控件子组的有效性。