使用JavaScript进行ASP.NET动态验证

时间:2014-02-06 16:47:45

标签: javascript asp.net validation

我有这个问题,我有两个复选框,我试图验证,所以必须选择其中一个。

我正在使用javascript创建方法:

    function learningDisValidator(source, args) {
        if (document.getElementById("<%= persLearningDisabilityYes.ClientID %>").checked || document.getElementById("<%= persLearningDisabilityNo.ClientID %>").checked) {
            args.IsValid = true;
        }
        else {
            args.IsValid = false;
        }

    }

比我有自定义字段验证器

    <asp:CustomValidator id="learningDisVal" runat="server" Display="Dynamic" Enabled="true" ErrorMessage="Learning Disability is Required" ClientValidationFunction="learningDisValidator"></asp:CustomValidator>

现在这个验证器出于某种原因无效。我的问题是,如果使用

选择某些选项,我会在运行时启用其他验证器
ValidatorEnable(document.getElementById('persLearningDisabilityDetailsVal'), true);

这些确实有效。我在运行时启用这些验证器的问题是,一旦启用它们就会显示错误消息,而不是在单击“提交”按钮后显示。我对ASP.NET很新。非常感谢任何帮助,谢谢。

编辑:我根据用户的选择启用了其他验证器,例如,如果选中单选按钮1,它将显示新的表单字段并启用“MAN”的验证器,如果选中单选按钮2,它将显示新表单字段和“WOMAN”的启用验证程序。现在我的问题是,一旦验证器启用,如上所示,它的错误信息立即显示在屏幕底部的错误面板中,这基本上是一个带有asp.net自定义验证器的div。我希望在单击“提交”按钮后显示此消息,从而让用户有时间了解他自己的“没有告诉他在给予他机会之前需要的东西”。至于代码,我不知道还有什么可以给,但我会尝试:

<div class="col1of1val"><asp:RequiredFieldValidator runat="server" ID="accHostFamilyDetailsAllergiesVal" Display="Dynamic" ControlToValidate="accHostFamilyDetailsAllergies" ErrorMessage="field cannot be empty" Enabled="false"></asp:RequiredFieldValidator></div>

并在javascript中:

ValidatorEnable(document.getElementById('accHostFamilyDetailsAllergiesVal'), true);

1 个答案:

答案 0 :(得分:0)

只需使用Jquery并在表单提交之前检查两个值是否为null。所以这样的事情。

测试“”,如果不能测试0

$("#btnSubmit").click(function() {

if ($("#checkbox1").val() == "" && $("#checkbox2").val() == "")
 {
    // causes form submit to stop and will not post to the server
      alert("some error message");
     return false;
 }

});