我已经了解到IE在使用jQuery验证插件(https://jqueryvalidation.org/)验证日期时遇到了一些问题。
我的规则是starttime: {required: true, date: true},但我的格式是DD-MMM-YYYY hh:mm a,也就是2017年8月31日上午9:43。
这在其他浏览器中是可行的,但是IE说这是一个无效的日期。注意,验证正在处理其他字段。
这里有一些很好的答案:Custom date format with jQuery validation plugin,但具体来说,我如何在IE中验证我的日期格式?
我的猜测是,我需要添加一个自定义方法,但是其中应该包含什么呢?RegEx还是一个定制的约会,怎么做?我同意RegEx验证日期的格式,而不验证日期本身(例如。因为这个页面使用数据报警器,用户不能直接输入数据。
编辑(包括实际代码):
<script type="text/javascript" src="js/plugins/jquery-validate/jquery.validate.min.js"></script>
<script>
$(document).ready(function(){
if ($("#newinspectionform").length > 0) {
var validate = $("#newinspectionform").validate({
errorClass: "has-error",
validClass: "",
errorElement: "span",
ignore: [],
errorPlacement: function (error, element) {
$(element).after(error);
$(element).parents(".form-group").addClass("has-error");
},
highlight: function (element, errorClass) {
$(element).parents(".form-group").removeClass("has-success").addClass(errorClass);
},
unhighlight: function (element, errorClass, validClass) {
$(element).parents(".form-group").removeClass(errorClass).addClass(validClass);
},
rules: {
propertyid: {required: true},
type: {required: true},
starttime: {required: true, date: true},
endtime: {required: true, date: true}
}
});
}
... other stuff
</script>发布于 2017-09-01 01:38:16
我用自定义日期方法修正了这个问题。我需要这样做,因为我的格式需要保持为DD-MMM-YYYY hh:mm a格式,即在2017年8月31日上午9:43。
$.validator.addMethod(
"inspDateTime",
function(value, element) {
// put your own logic here, this is just a (crappy) example
return value.match(/^(0?[1-9]|[12][0-9]|3[0-1])[/., -](0?[1-9]|1[0-2]|[a-zA-Z]{3})[/., -](19|20)?\d{2} (0?[1-9][012]?:[0-5][0-9] [ap]m)$/);
},
"Please enter a valid date."
);我不知道为什么不能验证这个日期,但是上面的正则表达式在IE中有效。请将这个答案归功于起始正则表达式:https://stackoverflow.com/a/17392795/2066625
发布于 2017-08-31 00:38:27
编辑:包括数据采集器
尝尝这个。它在IE中与datePicker一起工作。你也想定时间吗?如果是这样的话,我知道有些人已经为datetimePicker创建了一个插件。
<!doctype html>
<html>
<head>
</head>
<body>
<form>
<input type="date" class="left" id="starttime" name="starttime">
<br/>
<input type="submit" value="Validate!">
</form>
</body>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
//datePicker Set format
$('#starttime').datepicker({
dateFormat: 'yy-mm-dd'
}).datepicker("setDate", new Date());
var validator = $("form").validate ({
rules: {
starttime: {required: true, date: true}
},
messages: {
starttime: "Please enter a valid start date"
}
});
</script>
https://stackoverflow.com/questions/45971262
复制相似问题