[英]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.