私はここでこれをあまりにも長い間見てきました。2つのフィールドで2セットの検証を使用しようとしています(両方の日付、検証はonblur、検証エンジンのデフォルトイベントで発生します)。
最初の一連の検証は常に行われ、ユーザーが有効な入力日付を持っていることを確認します。
2 番目の検証セットは、両方のフィールドの日付が正しい場合にのみ発生します。両方の日付セットに検索対象の有効な日付範囲があることを確認するためのチェックが実行されます。
しかし、私が現在atmに問題を抱えているのは2番目です。FuncCalls が何らかの理由で認識されません。私はドキュメントとソースを見てきましたが、これを行う適切な方法が正確に何であるか、または相互に依存するフィールドを処理するという点で、これを処理するより良い方法があるかどうかはまだわかりません.
<html>
<head>
<script src="../../inc/functions.js" type="text/javascript"></script>
<script src="../../inc/jquery-min.js" type="text/javascript"></script>
<script src="../../inc/jquery.validationEngine.js" type="text/javascript"></script>
<script src="../../inc/jquery.validationEngine-en.js" type="text/javascript"></script>
<link href="../../inc/validationEngine.jquery.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
//returns true if end is later than start
function dateCompare(start, end) {
if (isDate(start) && isDate(end)) {
return (new Date(start.toString()) < new Date(end.toString()))
}
}
$(document).ready(function () {
$("#arbitraryForm").validationEngine('attach');
function rangeCheck(field, rules, i, options) {
alert("rangeCheck caLLEd");
var inDate1 = $("#inDate1").val();
var inDate2 = $("#inDate2").val();
if (!dateCompare(inDate1, inDate2)) {
return "arbitarty error";
}
}
$("#inDate1").blur(function (e) {
var inDate1 = PadDate($("#inDate1").val());
var inDate2 = PadDate($("#inDate2").val());
if (isDate(inDate1)) {
document.getElementById("inDate1").value = inDate1;
if (isDate(inDate2)) {
if (dateCompare(inDate1, inDate2)) {
}
}
}
}),
$("#inDate2").blur(function (e) {
var inDate2 = PadDate($("#inDate2").val());
if (isDate(inDate2)) {
document.getElementById("inDate2").value = inDate2;
}
})
});
</script>
</head>
<form id="arbitraryForm" action="whatever_page.html">
<div>
<input type="text" id="inDate1" name="inDate1" value="" class="validate[required,custom[dateFormat],funcCall[rangeCheck]]" />
<input type="text" id="inDate2" name="inDate1" value="" class="validate[required,custom[dateFormat],funcCall[rangeCheck]]" />
</div>
<input id="subbtn" type="submit" value="Run Report" name="subbtn"/>
</form>
</html>