1

我有几个通过 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" />
// (...)
4

3 回答 3

0

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

于 2009-03-13T13:42:49.703 回答
0

我的猜测是验证脚本没有连接。在您的函数中执行 alert((typeof(Page_Validators) == "undefined")) 并查看它是否显示为 true。您说您正在通过 ajax 加载选项卡。您可能想看看在页面上的某处放置验证器是否有助于连接验证脚本。

另一件需要注意的是 Firefox 和传统渲染模式......客户端只是普通的在那种情况下不起作用。

于 2009-03-13T14:17:22.930 回答
0

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

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

有时您可能需要在 Page Pre_Render 方法中添加以下服务器端代码

button1.AddAttributes("validationgriup","group1");
于 2012-06-21T18:51:31.870 回答