以下是针对“jquery easyui 对于开始时间小于结束时间的判断”的攻略:
1. 前言
JQuery EasyUI 是一个开源的 JavaScript 库,主要用于创建易于使用的、富有交互性的 Web 页面。EasyUI 中包含的 Datetimebox(日期时间框)插件,提供了日期时间选择的功能。但在使用中我们有时需要进行判断,确保开始时间小于结束时间,以保证数据的准确性。
2. 判断方式
在 EasyUI 中的 Datetimebox 插件支持 formatter
和 parser
方法,可以通过这两种方法来实现对日期时间输入的判断。
以开始时间为例,通过此方法来判断开始时间小于结束时间:
$('#start_time').datetimebox({
formatter: function(date){
return formatDate(date); // 格式化时间
},
parser: function(s){
if (!s) return new Date();
var date = new Date(s);
if(date < $('#end_time').datetimebox('getValue')){ // 如果开始时间小于结束时间
return date;
} else {
return $('#end_time').datetimebox('getValue'); // 将开始时间设置为结束时间
}
}
});
3. 示例说明
示例一
下面是一个简单的示例,使用 Datetimebox 插件实现开始时间小于结束时间的判断功能。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Datetimebox</title>
<link rel="stylesheet" type="text/css" href="../css/easyui.css">
<link rel="stylesheet" type="text/css" href="../css/icon.css">
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/jquery.easyui.min.js"></script>
</head>
<body>
<input id="start_time" class="easyui-datetimebox" data-options="showSeconds:true">
<input id="end_time" class="easyui-datetimebox" data-options="showSeconds:true">
<script type="text/javascript">
function formatDate(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
var h = date.getHours();
var mi = date.getMinutes();
var s = date.getSeconds();
return y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d) + ' ' + (h < 10 ? ('0' + h) : h) + ':' + (mi < 10 ? ('0' + mi) : mi) + ':' + (s < 10 ? ('0' + s) : s);
}
$('#start_time').datetimebox({
formatter: function(date){
return formatDate(date);
},
parser: function(s){
if (!s) return new Date();
var date = new Date(s);
if(date < $('#end_time').datetimebox('getValue')){
return date;
} else {
return $('#end_time').datetimebox('getValue');
}
}
});
$('#end_time').datetimebox({
formatter: function(date){
return formatDate(date);
},
parser: function(s){
if (!s) return new Date();
var date = new Date(s);
if(date > $('#start_time').datetimebox('getValue')){
return date;
} else {
return $('#start_time').datetimebox('getValue');
}
}
});
</script>
</body>
</html>
示例二
如果您想自定义错误提示框,您可以在 EasyUI 中使用 validatebox
方法来设置错误提示消息。下面是一个示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Datetimebox</title>
<link rel="stylesheet" type="text/css" href="../css/easyui.css">
<link rel="stylesheet" type="text/css" href="../css/icon.css">
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/jquery.easyui.min.js"></script>
</head>
<body>
<input id="start_time" class="easyui-datetimebox" data-options="
showSeconds:true,
required:true,
missingMessage:'请输入开始时间',
invalidMessage:'开始时间不能大于结束时间'">
<input id="end_time" class="easyui-datetimebox" data-options="
showSeconds:true,
required:true,
missingMessage:'请输入结束时间',
invalidMessage:'结束时间不能小于开始时间'">
<script type="text/javascript">
function formatDate(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
var h = date.getHours();
var mi = date.getMinutes();
var s = date.getSeconds();
return y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d) + ' ' + (h < 10 ? ('0' + h) : h) + ':' + (mi < 10 ? ('0' + mi) : mi) + ':' + (s < 10 ? ('0' + s) : s);
}
$.extend($.fn.validatebox.defaults.rules, {
beginTime: {
validator: function(value, param){
var start = $(param[0]).datetimebox('getValue');
return value > start;
},
message: '开始时间不能大于结束时间'
},
endTime: {
validator: function(value, param){
var end = $(param[0]).datetimebox('getValue');
return value < end;
},
message: '结束时间不能小于开始时间'
}
});
$('#start_time').datetimebox({
formatter: function(date){
return formatDate(date);
},
parser: function(s){
if (!s) return new Date();
var date = new Date(s);
return date;
}
});
$('#end_time').datetimebox({
formatter: function(date){
return formatDate(date);
},
parser: function(s){
if (!s) return new Date();
var date = new Date(s);
return date;
}
});
$('#start_time').datetimebox('validator', {
validator: function(value){
return $('#end_time').datetimebox('getValue') >= value;
},
message: '开始时间不能大于结束时间'
});
$('#end_time').datetimebox('validator', {
validator: function(value){
return $('#start_time').datetimebox('getValue') <= value;
},
message: '结束时间不能小于开始时间'
});
</script>
</body>
</html>
上述代码中,我们在 Datetimebox 中添加了 required
属性,并使用 missingMessage
属性来设置错误提示消息。我们还使用 extend
方法为 validatebox
添加了自定义规则,来实现对时间输入的判断。最后使用 validator
选项来将验证规则添加至 Datetimebox 中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery easyui 对于开始时间小于结束时间的判断示例 - Python技术站