使用组进行客户端验证

时间:2009-03-13 13:16:23

标签: asp.net client-side validation

我有几个通过ajax加载的选项卡,每个选项卡都有一组验证器。我想只允许用户在标签有效时更改标签

我认为将验证组设置为验证器然后检查这样的特定组是否可行:

function validatePage(group) {
    return Page_ClientValidate(group);
}

但是,当我调用该函数时,它总是返回true。谁能看到我做错了什么?

我这样检查

alert(validatePage("presentaciones"));

我有一些验证器:

// (...)
<asp:TextBox ValidationGroup="presentaciones" id="txtDescription" runat="server" Text='<%# Eval("Description") %>' MaxLength="50" />
<asp:RequiredFieldValidator ID="DescriptionRequiredFieldValidator" runat="server" ControlToValidate="txtDescription" SetFocusOnError="true" ValidationGroup="presentaciones" ErrorMessage="Debe ingresar una descripción" Display="Dynamic" />
// (...)

3 个答案:

答案 0 :(得分:0)

我已经让小组在服务器端与Page.Validate(group)一起工作,但我不知道这可以在客户端完成。也许您需要实现一个自定义验证控件来检查每个选项卡的状态。

答案 1 :(得分:0)

我的猜测是验证脚本没有连线。在你的函数中做一个警报((typeof(Page_Validators)==“undefined”))并查看它是否显示为true。你说你正在通过ajax加载标签。您可能想看看是否在页面上放置验证器有助于连接验证脚本。

要注意的另一件事是Firefox和传统渲染模式....客户端只是简单在这种情况下不起作用。

答案 2 :(得分:0)

这可以在客户端完成。像这样:

  $('.buttonWithSameValidationGroup').bind('click', function () {
                if (Page_ClientValidate($(this).attr('validationgroup'))) {
    //do stuff
  }
});

有时您可能需要在Page Pre_Render方法

中添加以下服务器端代码
button1.AddAttributes("validationgriup","group1");