jQuery Validate Plugin(https://jqueryvalidation.org/)を使用して、IEの検証に問題があることを知りました。jQuery .validate - Internet Explorerで日付を検証する
私のルールは単純に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やカスタム日付、そしてどのように?私は、このページがdatepickerを使用し、ユーザーがデータを直接入力することができないため、日付そのものを検証せずに(例:32/01/2017)、日付の形式を検証することでRegExを検証できます。
EDIT(実際のコードを含める):
<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>
これをチェックアウトしましたか? https://stackoverflow.com/questions/4809451/date-validator-on-datepicker-trigger-false-negatives-in-ie7-ie8 –
はい - そのようなものがいくつかありますが、これらの解決策は残念なことにこの状況を助けません。 – Warren