2017-02-21 86 views
0

我想驗證一年使用knockoutJS庫。 我面臨的問題是,用戶輸入錯誤年份的年份沒有驗證。以下是錯誤年份的情況。驗證日期(年)使用敲除JS

(01/01/12 becomes 01/01/0012) 
(01/01/01 becomes 01/01/0001) 
(01/01/111 becomes 01/01/0111) 
(01/01/00 becomes 01/01/0000) 

如何驗證年份是否有誤? 我正在使用擊倒JS。

提前謝謝你們!

+0

聽起來像是你需要驗證: https://github.com/Knockout-Contrib/Knockout-Validation – 4imble

+0

謝謝@ 4imble !!我會檢查鏈接。 – ayoub

回答

0

類似於引用淘汰賽以上答案和時刻js。這裏是一個我做(我沒有用一個擴展,而是隻是一個計算和CSS結合添加有錯誤的引導表單組

function model() { 
 
    var self = this; 
 
    this.myDate = ko.observable(''); 
 
    this.myDateisValid = ko.computed(function() { 
 
    return moment(this.myDate(), "MM/DD/YYYY", true).isValid(); 
 
    }, this); 
 
} 
 

 
var myViewModel = new model(); 
 

 
$(document).ready(function() { 
 
    ko.applyBindings(myViewModel); 
 
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="form-group" data-bind="css: {'has-error': !myDateisValid() }"> 
 
    <label for="date">Date:</label> 
 
    <input type="text" class="form-control" id="date" placeholder="MM/DD/YYYY" data-bind="textInput: myDate"> 
 
</div> 
 

 
Date is Valid: <label data-bind="text: myDateisValid"></label>