0

これは私のHTML開始日終了日AngularjsとBootstrape日付ピッカーと検証

<form name="myForm"> 
     <div class="row"> 
      <div class="col-md-2"> 
      <input data-ng-model="Data.StartDate" type="text" id="startDate" name="startDate" 
      class="form-control" data-datepicker-popup="MM-dd-yyyy" data-datepicker-append-to-body="true" 
      data-is-open="popup.fromOpened" data-ng-click="fromOpen()" placeholder="Start Date" data-ng-required="true" /> 
     </div> 
     <div class="col-md-2"> 
      <input data-ng-model="Data.EndDate" type="text" id="endDate" name="endDate" 
      class="form-control" data-datepicker-popup="MM-dd-yyyy" data-datepicker-append-to-body="true" 
      data-is-open="popup.toOpened" data-ng-click="toOpen()" placeholder="End Date" data-ng-required="true" /> 
     </div> 
     <div class="col-md-2"> 
      <button data-ng-click="Search()" class="btn btn-info">Search</button> 
     </div> 
     </div> 
     <div class="row"> 
     <span>Error list</span> 
     </div> 
    </form> 

角度のコードでは、このようなものです。

$scope.$watch('Data.StartDate', validateDates); 
$scope.$watch('Data.EndDate', validateDates); 

function validateDates() { 
//  some code and highlight it on form 
} 

私のページの日付については、まともな検証を追加したいと思います。どんな助けも高く評価されます。 ありがとうございます

答えて

0

html入力タグにtype = "date"と書いてください。

0

あなたが '$ watch'で例として書いたコードは、かなりサポートできず、維持するのが難しいです。新しいフィールドを追加する場合は、500以上のコントローラを作成するだけです。

は、私が作成するために、あなたにお勧め:

  1. すべてのタイプの検証メソッドが含まれますValidationFactory
  2. FIELDS_CONFIG保存先のオブジェクト{fieldName: 'string', validationErrorMessage: 'string', fieldType: 'string', validateIf: 'function', value: {} //path to another factory, where field origin value stored};
  3. 専用のform,divなどと$watchのモデルでのみ検証を実行する指令です。
  4. すべてのプロパティを専用formモデルオブジェクトに移動します。

何かがmodelに変えたらだから、ディレクティブは、メソッドをtahtに渡すvalueを使用すること、fieldTypeに基づいてValidationFactoryから検証メソッドを実行します。検証の結果はValidationFactory.errors = {}に格納され、fieldNameというキーで簡単にエラーにアクセスしてvalidationErrorMessageと表示されます。あなたが検証したい各フィールドに

ng-changeディレクティブ:アンチパターンは何とかある

単純なアプローチ。 ng-changeValidationFactory.validateDate(value, message)を受け入れます。すべてのエラーは、ValidationFactory.errors = []に保存して、アクセスポイントが親コントローラなどからValidationFactory.isAnyErrors()を確認するようにする必要があります。

関連する問題