我在过去为JQuery验证插件编写了一些自定义方法,但这是我想要检查多个条件的第一个。
这是一个简单的场景,我试图检测字段中是否存在html。我不需要广泛的正则表达式,我只是想告诉用户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>
答案 0 :(得分:1)
也许是这样的事情?
$(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");
});
答案 1 :(得分:0)
你可以这样做:
var el=$('<div>').html(value);
commentclean = ( el.html() == el.text()
&& el.text().indexOf('http') == -1
);