Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试获取内联验证[funcCall]以重新确认我的函数_Javascript_Jquery_Html_Validation_Jquery Validation Engine - Fatal编程技术网

Javascript 尝试获取内联验证[funcCall]以重新确认我的函数

Javascript 尝试获取内联验证[funcCall]以重新确认我的函数,javascript,jquery,html,validation,jquery-validation-engine,Javascript,Jquery,Html,Validation,Jquery Validation Engine,我在这里看这个太久了。我尝试在两个字段上使用两组验证(两个日期,验证发生在Blur上,验证引擎的默认事件) 第一组验证一直在进行,并验证用户是否具有有效的输入日期 只有当两个字段都有正确的日期时,才会进行第二组验证。它执行一项检查,以验证两组日期是否具有要搜索的有效日期范围 但这是我目前第二次遇到atm问题。由于某种原因,无法识别我的呼叫。我已经查看了文档和源代码,但我仍然不确定这样做的正确方法是什么,或者,就处理相互依赖的字段而言,是否有更好的方法来处理这个问题 <html>

我在这里看这个太久了。我尝试在两个字段上使用两组验证(两个日期,验证发生在Blur上,验证引擎的默认事件)

第一组验证一直在进行,并验证用户是否具有有效的输入日期

只有当两个字段都有正确的日期时,才会进行第二组验证。它执行一项检查,以验证两组日期是否具有要搜索的有效日期范围

但这是我目前第二次遇到atm问题。由于某种原因,无法识别我的呼叫。我已经查看了文档和源代码,但我仍然不确定这样做的正确方法是什么,或者,就处理相互依赖的字段而言,是否有更好的方法来处理这个问题

<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>

//如果end晚于start,则返回true
函数日期比较(开始、结束){
if(isDate(开始)和isDate(结束)){
return(新日期(start.toString())<新日期(end.toString()))
}
}
$(文档).ready(函数(){
$(“#任意形式”).validationEngine('attach');
函数范围检查(字段、规则、i、选项){
警报(“称为范围检查”);
var inDate1=$(“#inDate1”).val();
var inDate2=$(“#inDate2”).val();
如果(!dateCompare(inDate1,inDate2)){
返回“任意错误”;
}
}
$(“#inDate1”).blur(函数(e){
var inDate1=PadDate($(“#inDate1”).val();
var inDate2=PadDate($(“#inDate2”).val();
如果(isDate(inDate1)){
document.getElementById(“inDate1”).value=inDate1;
如果(isDate(inDate2)){
if(日期比较(inDate1,inDate2)){
}
}
}
}),
$(“#inDate2”).blur(函数(e){
var inDate2=PadDate($(“#inDate2”).val();
如果(isDate(inDate2)){
document.getElementById(“inDate2”).value=inDate2;
}
})
});

范围检查
函数移到
$(文档)之外。准备好
包装器(例如,就在
日期比较
函数的正下方)


如果在
$(document).ready
方法中声明它,则将其范围限制为该方法

范围检查
函数移到
$(文档)外。准备好
包装器(例如,就在
日期比较
函数的正下方)


如果在
$(document).ready
方法中声明它,则将其范围限制为该方法

我认为您正在增加您并不真正需要的复杂性(jQuery似乎经常出现这种情况)。为什么不直接使用以下内容:

        function rangeCheck() {
            alert("rangeCheck caLLEd");
            var inDate1 = $("#inDate1").val();
            var inDate2 = $("#inDate2").val();

            if (!dateCompare(inDate1, inDate2)) {
                //flag the error in the form here, if you want
                return false;
            }
            return true;
        }

        function blur1() {
            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)) {

                    }
                }
            }
        }

        function blur2() {
            var inDate2 = PadDate($("#inDate2").val());
            if (isDate(inDate2)) {
                document.getElementById("inDate2").value = inDate2;
            }
        }

<form id="arbitraryForm" action="whatever_page.html" onSubmit="return rangeCheck();">
    <div>
        <input type="text" id="inDate1" name="inDate1"  value="" onBlur="blur1();" /> 
        <input type="text" id="inDate2" name="inDate1"  value="" onBlur="blur2();" /> 
    </div>
        <input id="subbtn" type="submit" value="Run Report" name="subbtn"/>
</form>

我认为您正在增加您并不真正需要的复杂性(jQuery似乎经常出现这种情况)。为什么不直接使用以下内容:

        function rangeCheck() {
            alert("rangeCheck caLLEd");
            var inDate1 = $("#inDate1").val();
            var inDate2 = $("#inDate2").val();

            if (!dateCompare(inDate1, inDate2)) {
                //flag the error in the form here, if you want
                return false;
            }
            return true;
        }

        function blur1() {
            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)) {

                    }
                }
            }
        }

        function blur2() {
            var inDate2 = PadDate($("#inDate2").val());
            if (isDate(inDate2)) {
                document.getElementById("inDate2").value = inDate2;
            }
        }

<form id="arbitraryForm" action="whatever_page.html" onSubmit="return rangeCheck();">
    <div>
        <input type="text" id="inDate1" name="inDate1"  value="" onBlur="blur1();" /> 
        <input type="text" id="inDate2" name="inDate1"  value="" onBlur="blur2();" /> 
    </div>
        <input id="subbtn" type="submit" value="Run Report" name="subbtn"/>
</form>

Thx,你们两个都帮了忙,但我把它交给@aroth,让我对过度复杂的jQuery感觉更好。Thx,你们两个都帮了忙,但我把它交给@aroth,让我对过度复杂的jQuery感觉更好。