2016-05-23 2 views
0

特定のフィールドがクリックされてぼやけると、検証メッセージが表示され、テキストフィールドが赤くなります。しかし、入力フィールドに触れることなくフォームの送信ボタンをクリックすると、エラーメッセージは表示されず、テキストフィールドは赤色に変わりません。フォームの検証にangle-formlyを使用すると、サブミットをクリックすると検証エラーメッセージが表示されない

正しい方法は、送信中にすべての検証メッセージを表示し、すべてのテキストフィールドを赤にする必要があることです。このため

plunkは、誰もが親切に私は、このためのソリューションを与えることができ

http://plnkr.co/edit/fNUdp7Qdd0ysrd0eiPFT

<!DOCTYPE html> 
<html> 

    <head> 
    <title>Angular-Formly</title> 
     <link rel="stylesheet" type="text/css" href="style.css" /> 
    <link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" /> 
    </head> 

<!-- form declaration--> 
    <body ng-app="app" ng-controller="MainController as vm"> 
    <div class="container col-md-4 col-md-offset-4"> 
     <form novalidate name="vm.form" ng-submit="vm.formsubmit()" > 
     <formly-form model="vm.user" fields="vm.fields" form="vm.form" > 

     </formly-form> 
     <button type="submit" class="btn btn-default">Submit</button> 
     </form> 
    </div> 

    <!-- Application Dependencies --> 
    <script src="//cdnjs.cloudflare.com/ajax/libs/api-check/7.2.4/api-check.js"></script> 
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script> 
    <script data-require="[email protected]" data-semver="1.4.8" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script> 
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-formly/6.11.0/formly.min.js"></script> 
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-formly-templates-bootstrap/4.3.1/angular-formly-templates-bootstrap.js"></script> 


    <!-- Application Scripts --> 
    <script src="app.js"></script> 
    <script src="MainController.js"></script> 


    <script type="text/ng-template" id="custom-messages.html"> 
    <div class="my-messages" ng-messages="field.$error" ng-style="{color: 'red'}" ng-if="form.$submitted"> 
     <div class="my-message" ng-message"required">required Message</div> 
    </div> 
    </script> 


    <script type="text/ng-template" id="formly-messages.html"> 
    <formly-transclude></formly-transclude> 
    <div class="my-messages" ng-messages="form.$error" ng-style="{color: 'red'}" ng-if="fc.$touched"> 
     <div ng-repeat="(name, message) in ::options.validation.messages" ng-message="{{::name}}">{{message(fc.$viewValue, fc.$modelValue, this)}} 
     </div> 
    </div> 
    </script> 
    </body> 

</html> 

のですか?事前に感謝します

+0

これが何らかの形で役立つかどうかはわかりませんが、一見ありますかhttp://stackoverflow.com/a/37153508/4759033 –

答えて

0

あなたはそこに必要なフィールドを持っているので、フォームはあなたがそれを提出することはできませんね。

したがって、の値は、オプション設定formlyConfigProvider.extras.errorExistsAndShouldBeVisibleExpressionでは決してtrueになりません。

関連する問題