2016-05-02 9 views
0

私はとOnsen-uiを使用して、ユーザーが有効な日付を記入する入力を含むモバイルページを作成しています。日付入力の有効性を確認するにはどうすればよいですか?

HTML::

<input type="date" autofocus class="search-input" name="dateInput" ng-model="date" ng-keyup="checkDate()"/>

JS:ここに私のコードです

function checkDateFn() { 
     if (Object.prototype.toString.call($scope.date) === '[object Date]') { 
     // it is a date 
     if (isNaN($scope.date.getTime())) { // d.valueOf() could also work 
      // date is not valid 
     } 
     else { 
      // date is valid 
      // DO SOMETHING 
     } 
     } 
     else { 
     // not a date 
     } 
    } 

しかし、それは(私はなぜ知らない)有効な日付を取得できません。 。 私もHTML formを使用することを試みたが、私はこれを書いた:

<form name="dateForm"> 
     <input type="date" autofocus class="search-input" name="dateInput" ng-model="date"/> 
    </form> 

しかし、この場合には、私はdateForm.dateInput.$validが発生したときに機能をトリガーする方法がわかりません。

私の目的を達成するためのより良い方法がありますか?

+0

を追加することができますそれは汚いですが、あなたは常に '$腕時計(「dateForm.dateInputを設定することができます。$有効な形式を無効にすることができます'、watchHandler) 'おそらくもっと簡単な方法かもしれません。 – ryanyuyu

+0

なぜか分かりませんが、最初のページが読み込まれてから、 'watchHandler'が開始されてからトリガーされます。 'dateForm.dateInput。$ valid'は日付の有効性をチェックするのか、それともフィールドがいっぱいであるのかをチェックしますか? – smartmouse

+0

これにはng-patternを使用できます。 –

答えて

0

あなたはdateForm.$invalid

まで、送信ボタンをだからあなたの送信ボタンの上にあなたがng-disabled="dateForm.$invalid"

+0

私は送信ボタンがありません... – smartmouse

+0

いつ検証がいつ発生しますか? –

+0

ユーザーが有効な日付を挿入したとき。 – smartmouse

関連する問題