繁体   English   中英

有没有更优雅,可扩展的方法将多个条件添加到JQuery验证自定义方法?

[英]Is there a more elegant, extensible way of adding multiple conditions to a JQuery validation custom method?

过去,我为JQuery验证插件整理了一些自定义方法,但这是我要针对多个条件进行检查的第一个方法。

这是一个简单的场景,我试图检测字段中html的存在。 我不需要大量的Regex,我只想告诉用户html以客户端的方式被允许。 如果字段值中有html,我当然会阻止服务器端提交,但是我想要一个很好的用户体验。

必须有一种简单的方法来查找一些关键元素,可以通过遍历数组来做到吗?

<script language="javascript">
    $(document).ready(function(){

    $.validator.addMethod("findhtml", function(value, element) {

var commentclean = new Boolean();

if (element.value.indexOf("<") != -1) 
{
    commentclean= false;
    //alert('found <');
 }
else if
(element.value.indexOf("http") != -1){
    commentclean= false;
    //alert('found http');
}
else
{
    commentclean= true;
    //alert('nothing found')
}

return this.optional(element) || ( commentclean );

}, "* match the string");

});
</script>

大概是这样吗?

$(document).ready(function(){

    $.validator.addMethod("findhtml", function(value, element) {

        var commentclean = true,
            disallowed = ['<', 'http'];

        for (var i=0, len = disallowed.length; i<len; i++) {
            if (element.value.indexOf(disallowed[i]) != -1) {
                commentclean = false;
                break;
            }        
        }

        return this.optional(element) || ( commentclean );

    }, "* match the string");

});

您可以执行以下操作:

var el=$('<div>').html(value);
commentclean = (   el.html() == el.text()
                && el.text().indexOf('http') == -1
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM