2016-04-29 16 views
1

私の問題は、日付入力時にbirthdateという入力タイプの日付に必要なものを入れようとしたときに必要なものがまだ表示されていることです私のフォームを提出させません。 birthdateの入力に必要な属性を削除しようとしたときにうまくいきました...しかし、私がしたいのは、birthdateを必要とすることです。なぜそれが正常に機能するのかわかりません。 full_namegenderemail日付のAngularJsの検証はIEとMozillaでは機能しません

のような他の必要な入力にHTML5は、私が働いていたにそれのためのプラグインを使用するMozillaやIE では動作しませんので。

<!--HTML5 Date and Month Input Compatibility--> 
    <!-- cdn for modernizr--> 
    <script src="http://cdn.jsdelivr.net/webshim/1.12.4/extras/modernizr-custom.js"></script> 
    <!-- polyfiller file to detect and load polyfills --> 
    <script src="http://cdn.jsdelivr.net/webshim/1.12.4/polyfiller.js"></script> 
    <!--end of compatibility--> 
    <script> 
     webshims.setOptions('waitReady', false); 
     webshims.setOptions('forms-ext', {types: 'date'}); 
     webshims.polyfill('forms forms-ext'); 
    </script> 

AngularJSがどのISO-8601形式でdate型を検証するので、私はそれが動作しないと思いボタン

<button type="submit" form="form-customer" 
      class="btn btn-primary pull-right" id="cmd_insert_customer" ng-show="tab == 3"> 
    Insert Customer 
    </button> 

FORM

<div class="row" ng-show="tab == 3"> 
     <div class="col-md-12"> 
     <form name="form" ng-submit="form.$valid && insertCustomer(form)" id="form-customer" class="css-form" novalidate > 
      <div class="row"> 
       <div class="col-xs-4"> 
        <div class="row"> 
         <div class="col-xs-12"> 
          <img src="{{profilePic}}" id="profile_picture" class="img-responsive img-thumbnail" /> 
         </div> 
        </div> 
        <div class="row"> 
         <div class="col-xs-12"> 
          <input type="file" name="image_path" id="image" class="form-control" onchange="angular.element(this).scope().uploadFile(this.files)" /> 
         </div> 
        </div> 
       </div> 
       <div class="col-xs-8"> 
        <div class="row"> 
         <div class="col-md-7"> 
          <label>Full Name* 
          <span class="required-label" ng-show="form.$submitted || form.full_name.$touched"> 
           <span ng-show="form.full_name.$error.required">(Full Name is required.)</span> 
          </span> 
          </label> 
          <input type="text" ng-model="insertProfile.full_name" name="full_name" class="form-control" required="" /> 
         </div> 
        </div> 
        <br /> 
        <div class="row"> 
         <div class="col-md-7"> 
          <label>Gender* 
          <span class="required-label" ng-show="form.$submitted || form.gender.$touched"> 
           <span ng-show="form.gender.$error.required">(Gender is required.)</span> 
          </span> 
          </label> 
          <select name="gender" class="form-control" ng-model="insertProfile.gender" required > 
          <option value ="">Select Gender</option> 
          <option value = "M">Male</option> 
          <option value = "F">Female</option> 
         </select> 
         </div> 
        </div> 
        <br /> 
        <div class="row"> 
         <div class="col-md-7"> 
          <label>Birth Date* 
          <span class="required-label" ng-show="form.$submitted || form.birth_date.$touched"> 
           <span ng-show="form.birth_date.$error.required">(Birthdate is required.)</span> 
          </span> 
          </label> 
          <input type="date" name="birth_date" class="form-control" ng-model="insertProfile.birth_date" required /> 
         </select> 
         </div> 
        </div> 
       </div> 
      </div> 
      <br /> 
       <div class="row"> 
       <div class="col-md-5"> 
        <label>Mobile #</label> 
        <input type="number" name="mobile" value="" class="form-control" ng-model="insertProfile.mobile" /> 
       </div> 
       <div class="col-md-5"> 
        <label>Email* 
        <span class="required-label" ng-show="form.email.$error.email">(Invalid email address.)</span> 
        <span class="required-label" ng-show="form.$submitted || form.email.$touched"> 
         <span ng-show="form.email.$error.required">(Email is required.)</span> 
        </span> 
        </label> 
        <input type="email" name="email" value="" class="form-control" ng-model="insertProfile.email" required /> 
       </div> 
      </div> 
      <br /> 
       <div class="row"> 
       <div class="col-md-5"> 
        <label>City</label> 
        <input type="text" name="city" value="" class="form-control" ng-model="insertProfile.city" /> 
       </div> 
       <div class="col-md-5"> 
        <label>Address</label> 
        <textarea name="address" class="form-control" rows="4" cols="50" ng-model="insertProfile.address" ></textarea> 
       </div> 
      </div> 
     </form> 
     </div> 
    </div> 

答えて

0

を送信yyyy-mm-dd。したがって、yyyy/mm/ddで日付を入力すると、エラーが発生する無効な形式になります。詳細についてはAngularJSの文書hereをお読みください。

+0

私はプラグインを追加するときに何が起こっているのか分かりました....私の入力タイプの日付は非表示になり、入力タイプのテキストdatepickerで置き換えられます...作成したdatepickerを選択するとプラグインでは入力した日付の値もコピーされますが、$ touched(またはそれに類似したキープレスの動作)による検証が行われて以来、日付に貼り付けられた日付を検証することはできません....しかし、答えを...これを修正する方法について.. ng-changeバリデーションのような方法があるかどうかを調べています...入力タイプの日付の変更を検出します –

+0

だから、 'bootstrap- datepicker'の日付入力フォームのライブラリですか? datepickerの手掛かりがないので、プラグインの使用法を提供するコードを更新してください。 –

+0

私はhtml5 'input type = 'date''を使用しています...私の質問をもう一度見てください...あなたはそこにpolyfillを見ることができます...もしブラウザが私のhtml5日付をサポートしていなければ、datepicker ...、しかし、送信ボタンをクリックしたときに動作するはずの他のものは、以来、私は '$ touched'または' $ submitted'によって 'または'を使っています.... –

関連する問題