2

我不想禁用验证,但是向用户显示消息会很棒。虽然我认为用户在文本字段中包含 的合法需求极不可能,但我可以看到有人在自由文本字段中输入以 < 开头的内容。

有没有办法检测会抛出验证异常并将其显示为验证消息?

4

1 回答 1

0

这是我解决此问题的方法:

  1. 创建一个验证规则,比如potentiallyDangerousRequestRule

    var potentiallyDangerousRequestRegex = /[<>]|&#/, // <, >, &#
        potentiallyDangerousRequestErrorMessage = 'The error message';
    
    $.validator.addMethod('potentiallyDangerousRequestRule', function (value) {
        if (value == '')
            return true;
        return !potentiallyDangerousRequestRegex.test(value);
    }, potentiallyDangerousRequestErrorMessage);
    
    $.validator.unobtrusive.adapters.addBool('potentiallyDangerousRequestRule');
    
  2. 在要验证的元素上调用validate方法:form

    $('form').validate({errorClass: 'input-validation-error'});
    
  3. 将规则添加到元素,例如所有文本输入和文本区域:

    $('input:text, textarea').each(function () {
        $(this).rules('add', { potentiallyDangerousRequestRule: true });
    });
    

validate确保在应用规则之前调用表单上的方法。

于 2013-08-30T08:15:55.393 回答