【问题标题】:Is it possible to have the CustomValidator get fired before the RequiredFieldValidators是否可以在 RequiredFieldValidator 之前触发 CustomValidator
【发布时间】:2018-01-23 19:29:17
【问题描述】:

我有一个文本框,用户可以在其中输入工作编号。我正在使用服务器端 CustomValidator 检查该号码是否存在于数据库中。我希望在页面中的任何其他内容之前调用此 CustomValidator。现在,只有在所有 RequiredFieldValidator 都被验证为 true 时,它​​才会触发 CustomValidator。验证发生在按钮单击时。

是否可以在其他RequiredFieldValidator 之前验证CustomValidator?另外,有没有一种方法,只要在文本框中输入作业编号,我们就可以验证编号并在无效时立即显示错误,而不是等到按钮单击?

【问题讨论】:

  • 很可能, requiredFieldValidator 正在(也)在客户端(javascript)运行,如果没有完成,它会停止回发,即您的服务器端 CustomValidator 根本没有运行。您可能还需要实现一些客户端验证

标签: c# asp.net requiredfieldvalidator customvalidator


【解决方案1】:

如果您使用的是CustomValidator,则将ValidateEmptyText 属性设置为true,并将代码添加到您的验证方法以检查该值是否已填充。那么你根本不需要RequiredFieldValidator。只需确保您有一个 JavaScript 函数来执行验证客户端并设置 ClientValidationFunction 属性。

要随时触发验证,可以使用此处描述的方法(虽然我从未尝试过):http://fczaja.blogspot.ca/2009/07/aspnet-how-to-trigger-client-side.html

function Validate()
{
    // Get the specific validator element
    var validator = document.getElementById('RequiredFieldValidator1');

    // Validate chosen validator
    ValidatorValidate(validator);

    // Update validation summary for chosen validation group
    ValidatorUpdateIsValid();
    ValidationSummaryOnSubmit(validationGroup);    
}

然后你可以在文本框的keypress事件中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    相关资源
    最近更新 更多