验证程序:如果ClientSide失败,如何禁用ServerSide验证

时间:2018-11-23 22:41:59

标签: asp.net vb.net customvalidator

我正在创建一个页面,用户在其中输入卡号,并且在文本框中附加了许多验证器。

第一个是RequiredFieldValidator

第二个是RegularExpressionValidator

第三是CustomValidatorOnServerValidate="validateServer"ClientValidationFunction="validateClient"

T自定义程序先执行客户端验证程序,然后再执行服务器端。我希望如果正则表达式验证器失败,则服务器端不会受到攻击。在自定义客户端代码中,我检查正则表达式验证器并返回True(这样就不会出现双重错误消息,一条来自REGEX,另一条来自CUSTOM验证器),但是如何禁用自定义验证器上的服务器验证?我无法弄清楚。

我在客户端验证器上尝试过此操作,但服务器端验证器仍然受到攻击:

if (!document.getElementById("myRegexValidator").isvalid) {
    args.IsValid = true; 
    return false;
}

1 个答案:

答案 0 :(得分:0)

没关系。

如果客户端验证器失败,则服务器端验证器不执行。

服务器端在我这边执行的原因是因为客户端有我没有捕获到的javascript错误(禁用了JS错误暂停)。由于IF语句中出现JS错误,因此总是会启动服务器端验证。