带有validate插件的jQuery ajaxSetup()

时间:2013-03-19 14:37:18

标签: jquery jquery-validate

我需要使用dataFilter从validate插件返回的json字符串的开头删除'//',我遇到了一些问题让它工作。我的代码的相关部分是:

$(document).ready(function () {
    $.ajaxSetup({
    dataFilter: function(data, type){
    return type == 'json' ? data.replace(/^(\/{2})?/, '') : data;
    }
});
    $("#myForm").validate({ 
        rules: {
            cgroup :{
                required: true,
                remote: {
                    url: compath + "/v.cfc?method=queryRemote&returnformat=json",
                    type: "post"
                }
            }

其他规则和消息已被截断。

由于切换到Coldfusion 10,现在将JSON作为前两个字符添加安全字符串(//),我需要在响应端修复此问题。

我不确定我的错误是在ajaxSetup中还是在使用validate()或正则表达式本身时。

控制台现在出现错误。在查看Fiddler中的响应数据时,如果我在较新的服务器上访问CFC,则会看到预期的// true或// false;如果我在不预先挂起/的服务器上发布到CFC,则返回true或false / characters。

但是我没有看到$ .ajaxSetup()正在做任何事情的迹象。

ANSWER:jquery.validate()打破了ajaxSetup()。解决方案是将datafilter向下移动到远程部分:

cgroup :{
                required: true,
                remote: {
                    url: compath + "/v.cfc?method=queryRemote&returnformat=json",
                    type: "post",
                    dataFilter: function(data, type){
                     return type == 'json' ? data.replace(/^(\/{2})?/, '') : data;
                    }
                }
            }

0 个答案:

没有答案