2016-07-03 73 views
0

請,我不知道如何正確配置ng-show。需要ng-show驗證輸入,submitt並在提交後不再顯示消息

這是怎麼回事,是這樣的:

1-我有4個輸入,好的。那些正在驗證。 2-我提交,確定。 3將它保存在我的數據庫中之後,清理這些字段,但是顯示所需字段的消息而未提交。我只需要顯示用戶是否提交併且沒有文字。

這裏去我的html:

<div class="grid-form"> 
       <div class="grid-form1"> 
        <h3 id="forms-example" class="">Cadastro de Peças</h3> 

        <form name="formCadastroPecas" id="formCadastroPecas" role="form" novalidate> 

         <div class="form-group"> 
           <label for="labelNome">Nome da Peça:</label> 
           <br> 
            <select size="3" style="width: 300px" multiple="" class="form-control1" ng-model="nome" ng-options="foo as foo for foo in names"> 
            </select> 

         </div> 

         <div class="form-group"> 
          <label for="fabricante">Fabricante:</label> <input 
           type="text" class="form-control" id="fabricante" ng-model="fabricante" name="fabricante" required> 
          <span style="color: red" 
           ng-show="submitted && formCadastroPecas.fabricante.$error.required" >Campo 
           Fabricante Obrigatório.</span> 
         </div> 
         <div class="form-group"> 
          <label for="exampleInputPassword1">Modelo:</label> <input 
           type="text" class="form-control" id="modelo" ng-model="modelo" name="modelo" required> 
          <span style="color: red" 
           ng-show="submitted && formCadastroPecas.modelo.$error.required" >Campo 
           Modelo Obrigatório.</span> 
         </div> 

         <div class="form-group"> 
          <label for="exampleInputPassword1">Preço de Compra:</label> <input 
           type="text" class="form-control" id="precoCompra" ng-model="precoCompra" name="precoCompra" required> 
          <span style="color: red" 
           ng-show="submitted && formCadastroPecas.precoCompra.$error.required" >Campo 
           Peço de Compra Obrigatório.</span> 
         </div> 

         <div class="form-group"> 
          <label for="exampleInputPassword1">Preço de Venda:</label> <input 
           type="text" class="form-control" id="precoVenda" ng-model="precoVenda" name="precoVenda" required> 
           <span style="color: red" 
           ng-show="submitted && formCadastroPecas.precoVenda.$error.required" >Campo 
           Preço de Venda Obrigatório.</span> 
         </div> 
         <button type="submit" class="btn btn-lg btn-danger" ng-disabled="form.$invalid" ng-click="submitForm(formCadastroPecas)">Cadastrar</button> 
         <br> 
         <span align="left" id="retornoValidacao" style="color: red">{{retorno.data.message}}</span> 
         <div class="alert alert-success" ng-show="show" role="alert"> 
           <center> 
            <strong>OK!</strong> Peça cadastrada com sucesso. 
           </center> 
         </div> 
        </form> 
+0

您是否需要將清除的窗體上的驗證消息隱藏起來? –

回答

1

嗯,如果我明白你的想法,你需要重新設置你的形式正確驗證?

清理完你的字段後,所有的信息仍然顯示,你應該需要 設置驗證來隱藏它。

對您的清潔功能,你應該把類似的東西給這個

$scope.formCadastroPecas.$setValidity(); //hide messages of validation 


$scope.formCadastroPecas.$setUntouched(); // set untouched the field if needed. 

此外,如果你需要,你可以預先設置一些值到田間地頭和使用

$scope.formCadastroPecas.$setPristine(); 

編輯

我會給你一個在啓動時使用ngMessages驗證的例子

<div class="form-group" data-ng-class=" 
           {'has-error has-feedback': yourForm.nombre.$invalid && !yourForm.$pristine && yourForm.nombre.$dirty, 
         'has-success has-feedback': yourForm.nombre.$valid, 
        'has-warning has-feedback': yourForm.nombre.$invalid&& yourForm.nombre.$touched}"> 
<!-- LABEL INPUT NOMBRE--> 
<label class="col-lg-4 control-label">Nombre</label> 
<!-- INPUT NOMBRE--> 
<div class="col-lg-8"> 
    <input type="text" class="form-control" ng-minlength="4" ng-maxlength="20" maxlength="25" ng-model="user.nombre" name="nombre" 
     required placeholder="Nombre" /> 
    <!-- MENSAJES--> 
    <div ng-messages="yourForm.nombre.$error" ng-if='yourForm.nombre.$dirty || yourForm.nombre.$touched'> 
     <div ng-message="minlength">Nombre demasiado corto.</div> 
     <div ng-message="maxlength">Nombre demasiado largo.</div> 
     <div ng-message="required" style="color: #8a6d3b;">Este campo no puede estar vacio.</div> 
    </div> 
    <!-- ICONOS DE MENSAJE--> 
    <span ng-show="yourForm.nombre.$dirty && yourForm.nombre.$valid" class="glyphicon glyphicon-ok form-control-feedback"></span> 
    <span ng-show="yourForm.nombre.$dirty && yourForm.nombre.$invalid" class="glyphicon glyphicon-remove form-control-feedback"></span> 
    <span ng-show="yourForm.nombre.$touched && yourForm.nombre.$pristine" class="glyphicon glyphicon-warning-sign form-control-feedback"></span> 
</div> 

+0

我拿出了ng - 如果因爲它正在清除消息,但是如果用戶決定保存另一個東西,則不會再顯示。 但是,當我setValidity(),它不是清除消息...我在我的ajax保存信息後調用它。 –

+1

嗯,我認爲你應該使用ngMessages來顯示你的驗證 –

+0

嘿,我只是這樣做,工作!與ng消息。作爲回答發佈,請在此接受。 –

相關問題