参考资料:
http://code.ciaoca.com/jquery/validation_engine/
http://www.cnblogs.com/aijun/archive/2011/03/21/1989991.html
http://csjava.blog.163.com/blog/static/1904700332012112065228299/
jsp:
<textarea name="content" id="content" cols="120" rows="4" style="overflow: auto;"
class="validate[required,ajax[sensitiveWord]]"></textarea>
jquery.validationEngine-zh_CN.js:(Validation Engine 2.2.4 , jQuery plugin,2.2.4版本的 )
"sensitiveWord":{ "url": "test!validateInfo.fhtm", "extraDataDynamic": ['#content'], "alertTextLoad": "验证中,请等待..." },
jquery.validationEngine.js: 需要修改以下的内容:
_ajax: function(field, rules, i, options) { var errorSelector = rules[i + 1]; var rule = options.allrules[errorSelector]; var extraData = rule.extraData; var extraDataDynamic = rule.extraDataDynamic; if (!extraData) extraData = ""; if (extraDataDynamic) { var tmpData = []; var domIds = String(extraDataDynamic).split(","); for (var i = 0; i < domIds.length; i++) { var id = domIds[i]; if ($(id).length) { var inputValue = field.closest("form").find(id).val(); var keyValue = id.replace('#', '') + '=' + encodeURIComponent(encodeURIComponent(inputValue)); //修改这里,原来的方法有点老,代码越界了,不需要换行 tmpData.push(keyValue); } } extraDataDynamic = tmpData.join("&"); } else { extraDataDynamic = ""; }
java:
private String content;
private Object[] validateReturn = new Object[3];
....省略了get set方法.....
public void validateInfo() throws Exception{
String result = "";
validateReturn[0] = fieldId;
validateReturn[1] = true;
validateReturn[2] = "";
try{
result = blacklistManager.getResult(URLDecoder.decode(content, "UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
}
finally{
if(StringUtils.isNotEmpty(result))
{
validateReturn[0] = fieldId;
validateReturn[1] = false;
validateReturn[2] = "* 内容包含敏感字:"+result;
}
getResponse().setContentType("text/plain");
PrintWriter out = getResponse().getWriter();
JSONArray jsarry = new JSONArray();
jsarry = JSONArray.fromObject(validateReturn);
out.print(jsarry);
}
}
public HttpServletResponse getResponse(){
return ServletActionContext.getResponse();
}
public HttpServletRequest getRequest(){
return ServletActionContext.getRequest();
}