Javascript 设置args.IsValid true/false时,CustomValidator的ClientValidationFunction失败

Javascript 设置args.IsValid true/false时,CustomValidator的ClientValidationFunction失败,javascript,asp.net,customvalidator,Javascript,Asp.net,Customvalidator,我有一个带有ClientValidationFunction的CustomValidator,如下所示 function checkAmount(source, args) { var opt = document.getElementById('<%=optByAmount.ClientID %>'); var txt = document.getElementById('<%=txtAmount.ClientID %>');

我有一个带有ClientValidationFunction的CustomValidator,如下所示

function checkAmount(source, args) {
        var opt = document.getElementById('<%=optByAmount.ClientID %>');
        var txt = document.getElementById('<%=txtAmount.ClientID %>');
        if (opt.checked == true && txt.value == '') {
            //args.IsValid = false;
            alert('failed');
        }
        else {
            //args.IsValid = true;
            alert('passed');
        }
    }
函数校验金额(源,参数){
var opt=document.getElementById(“”);
var txt=document.getElementById(“”);
如果(opt.checked==true&&txt.value==''){
//args.IsValid=false;
警报(“失败”);
}
否则{
//args.IsValid=true;
警报(“通过”);
}
}
只有当注释行被注释时,我才会收到错误消息“通过”和“失败”。当这些行被启用时,我根本不会收到任何警报。为什么

编辑
停止并运行代码20分钟后(执行代码这一部分以外的操作),它现在可以工作了!!!谢谢Damian和ub1k。我永远也不知道为什么会这样:(

很可能是因为

args.IsValid = true/false;
抛出一个异常,然后代码就不再执行了


参数不应该以某种方式初始化为数组吗?

很可能是因为

args.IsValid = true/false;
抛出一个异常,然后代码就不再执行了


参数不应该以某种方式初始化为数组吗?

请在代码中添加额外的行

alert(args);
在第一行


我已经仔细检查了你的代码,它对我来说非常有效。除此之外,我使用了CustomValidator很多次,问题可能出在其他地方。现在,如果你能检查args是否存在,那会很有帮助。

你能为你的代码添加额外的行吗

alert(args);
在第一行


我已经仔细检查了你的代码,它对我来说非常有效。除此之外,我使用了CustomValidator很多次,问题可能在其他地方。现在,如果你能检查args是否存在,这会很有帮助。

我也期待出现异常,但为什么呢?。我发现了各种示例,如args.IsValid=true/false;没有init。question是它失败的原因?可能args不具有有效性,但为什么和如何有效?同意。原因很可能是在其他地方。没有什么比这更具建设性的了,我可以说,你必须研究其他例子,你有工作,并寻找差异。有时,这些微小的差异似乎并不重要实际导致行为改变。我也期望出现异常,但为什么?我发现了各种各样的例子,如args.IsValid=true/false;没有init。问题是为什么它失败了?可能是args没有IsValid,但为什么和如何?同意。原因很可能是其他地方。没有比这更具建设性的东西了你必须研究其他的例子,寻找不同之处。有时那些看似不重要的细微差别实际上会导致行为改变。上面写着“未定义”这是CustomValidator,我可能没有正确调用它*请检查源参数。如果它不为null,请检查source.IsValid。您是否更改了项目中的默认验证机制?我建议您在clean项目中检查它,以确保它在目标解决方案之外工作。Aft呃,停止并运行代码20分钟(执行代码这一部分以外的操作),它现在正在工作!!!它说“未定义”这是CustomValidator,我可能没有正确调用它*请检查源参数。如果它不为null,请检查source.IsValid。您是否更改了项目中的默认验证机制?我建议您在clean项目中检查它,以确保它在目标解决方案之外工作。Aft呃,停止并运行代码20分钟(执行代码这一部分以外的操作),它现在正在工作!!!