<!doctype html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>
KNOCKOUT LESSON
</title>
<link rel="stylesheet" type="text/css" href="css/main.css" />
<style>
#content1{padding:16px;}
</style>
<script type="text/javascript" src="scripts/knockout30.js"></script>
</head> <body>
<div id="content1">
Year:<input data-bind="value:Year"><br/>
Month:<input data-bind="value:Month"><br/>
Day:<input data-bind="value:Day"><br/>
Date:<span data-bind="html: Date " ></span><br/>
<!--Date:<span data-bind="html:Year()+'-'+Month()+'-'+Day()"></span>-->
<input data-bind="value:Date" />
</div> <script type="text/javascript" src="scripts/jQuery183.js"></script>
<script>
$(document).ready(function(){
var ViewModel = function(){
var self = this;
self.Year = ko.observable("");
self.Month = ko.observable("");
self.Day = ko.observable(""); // self.Date = ko.computed(function(){
// return self.Year()+'年'+self.Month()+'月'+self.Day()+'日';
// }); self.Date = ko.pureComputed({
write: function(value){
var indexOfYear = value.indexOf('年');
var indexOfMonth=value.indexOf('月');
var indexOfDay=value.indexOf('日');
self.Year(value.substring(,indexOfYear));
self.Month(value.substring(indexOfYear+,indexOfMonth));
self.Day(value.substring(indexOfMonth+,indexOfDay));
},
read: function(){
return self.Year()+'年'+self.Month()+'月'+self.Day()+'日';
},
owner:self
});
};
var currentViewModel = new ViewModel();
ko.applyBindings(currentViewModel);
});
</script> </body>
</html>

使用正则过滤:当输入的是不符合规则的日期时:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
#content1{padding: 20px;}
</style>
</head>
<body>
<div id="content1">
Year:<input data-bind="value:Year" /><br />
Month:<input data-bind="value:Month" /><br />
Day:<input data-bind="value:Day" /><br />
Date:<span data-bind="html:Date"></span><br />
<input data-bind="value:Date" />
</div> <script src="scripts/jQuery183.js"></script>
<script src="scripts/knockout30.js"></script>
<script>
$(document).ready(function(){
var ViewModel = function(){
var self = this;
self.Year = ko.observable("");
self.Month = ko.observable("");
self.Day = ko.observable(""); // self.Date = ko.computed(function(){
// return self.Year()+'年'+self.Month()+'月'+self.Day()+'日';
// }); self.Date = ko.pureComputed({
write: function(value){
var indexOfYear = value.indexOf('年');
var indexOfMonth=value.indexOf('月');
var indexOfDay=value.indexOf('日');
var year = value.substring(,indexOfYear);
self.Year(year);
if(!/^\d()$/.test(year)){
alert('请输入四位阿拉伯数字的年份');
return false;
}
var month = value.substring(indexOfYear+,indexOfMonth);
self.Month(month);
if(!/^[-][-]$/.test(month)){
alert('请输入合法月份数字');
return false;
}
var day = value.substring(indexOfMonth+,indexOfDay);
self.Day(day);
if(!/^[-][-]$/.test(day)){
alert('请输入合法天数数字');
return false;
}
},
read: function(){
return self.Year()+'年'+self.Month()+'月'+self.Day()+'日';
},
owner:self
});
};
var currentViewModel = new ViewModel();
ko.applyBindings(currentViewModel);
});
</script>
</body>
</html>

最新文章

  1. bootstrap-列表组
  2. 深度学习入门教程UFLDL学习实验笔记二:使用向量化对MNIST数据集做稀疏自编码
  3. C#裁剪照片并保存
  4. 【转】个人最常用的Eclipse快捷键
  5. Linux内存分配----SLAB
  6. Extjs利用vtype验证表单
  7. Genymotion加载so出错解决方案
  8. JS设计模式(一) 单例模式
  9. Hadoop实战训练————MapReduce实现PageRank算法
  10. django - 总结 - ModelForm
  11. ie8下new Date()指定时间
  12. 5ci
  13. 阿里云 qW3xT.4 挖矿病毒问题
  14. C# 文件上传和下载
  15. ADNI数据集相关概念整理
  16. Asp.Net MVC简单三层架构(MVC5+EF6)
  17. SVN Error: Unreadable path encountered; access denied;
  18. 基本数据类型用== 比较数值 引用类型用==比较的是jvm中的地址 比较数值用equal
  19. mysql学习--基本使用
  20. Arrays.asList方法遇到的问题

热门文章

  1. [linux]device eth0 does not seem to be present, delaying initialization
  2. RHEL64 缺少ISO 9660图像 安装程序试图挂载映像#1,在硬盘上无法找到该映像
  3. ReferenceError: Error #1065: 变量 dataGridArray 未定义
  4. Java和Flex整合报错(一)
  5. IP地址校验
  6. Python基础__Python序列基本类型及其操作(1)
  7. 【BZOJ3930】选数(莫比乌斯反演,杜教筛)
  8. 洛谷2709 小B的询问(莫队)
  9. USACO08MAR Land Acquisition
  10. [BZOJ3275] Number (网络流)