Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 验证插件-消息的ajax调用_Php_Jquery_Jquery Validate - Fatal编程技术网

Php 验证插件-消息的ajax调用

Php 验证插件-消息的ajax调用,php,jquery,jquery-validate,Php,Jquery,Jquery Validate,我使用的是1.9.0 jquery版本,这个验证插件: 我想从PHP文件下载JSON格式的消息,如下所示: messages: { remote: function() { return $.ajax({ url: 'http://localhost/My/index.php/form/validate/messages', type: "POST",

我使用的是1.9.0 jquery版本,这个验证插件:

我想从PHP文件下载JSON格式的消息,如下所示:

    messages: {
        remote: function() {
            return $.ajax({
                url: 'http://localhost/My/index.php/form/validate/messages',
                type: "POST",
                }).done(function(messages) {
                    return messages;
                }
            );
         }
    }
$.ajax({
        url: 'http://localhost/My/index.php/form/validate/messages',
        type: 'POST',
        dataType: 'json',
        success: function (results) {
            //your data here in results
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
         alert("error");
        }
    });
jQuery.extend(jQuery.validator.messages, {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    number: "Please enter a valid number.",
    digits: "Please enter only digits.",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
    minlength: jQuery.validator.format("Please enter at least {0} characters."),
    rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
    range: jQuery.validator.format("Please enter a value between {0} and {1}."),
    max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
    min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});
但是,它根本不工作,不显示消息,不进行ajax调用,什么都没有。你能帮我做这个吗?

试试这个:

    messages: {
        remote: function() {
            return $.ajax({
                url: 'http://localhost/My/index.php/form/validate/messages',
                type: "POST",
                }).done(function(messages) {
                    return messages;
                }
            );
         }
    }
$.ajax({
        url: 'http://localhost/My/index.php/form/validate/messages',
        type: 'POST',
        dataType: 'json',
        success: function (results) {
            //your data here in results
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
         alert("error");
        }
    });
jQuery.extend(jQuery.validator.messages, {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    number: "Please enter a valid number.",
    digits: "Please enter only digits.",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
    minlength: jQuery.validator.format("Please enter at least {0} characters."),
    rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
    range: jQuery.validator.format("Please enter a value between {0} and {1}."),
    max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
    min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});

当显示“错误”时,服务器端出现错误。你需要调试它。您可以使用Firebug网络控制台在浏览器中检查结果或网络控制台。

使用
远程
规则时,请参阅文档以获取示例:

remote
规则用于将特定字段的内容与数据库进行比较。。。例如检查名称或密码是否已经存在。它不能用来简单地将错误消息列表转储回插件。就插件而言,您只需为一条规则设置一条错误消息。见:

我真的不明白你想做什么的目的。通常,每个规则的错误消息只设置一次,不会更改

要动态更改特定字段上的消息,可以使用。你甚至不必触碰规则就能超越信息

$("#myinput").rules("add", {
    messages: {
        required: "Required input",
        minlength: jQuery.format("Please, at least {0} characters are necessary")
    }
});
或者,您可以覆盖以下任何或所有消息:

    messages: {
        remote: function() {
            return $.ajax({
                url: 'http://localhost/My/index.php/form/validate/messages',
                type: "POST",
                }).done(function(messages) {
                    return messages;
                }
            );
         }
    }
$.ajax({
        url: 'http://localhost/My/index.php/form/validate/messages',
        type: 'POST',
        dataType: 'json',
        success: function (results) {
            //your data here in results
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
         alert("error");
        }
    });
jQuery.extend(jQuery.validator.messages, {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    number: "Please enter a valid number.",
    digits: "Please enter only digits.",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
    minlength: jQuery.validator.format("Please enter at least {0} characters."),
    rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
    range: jQuery.validator.format("Please enter a value between {0} and {1}."),
    max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
    min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});

您应该发布您的relavent PHP代码,因为这将有助于为您提供答案–还添加了PHP标记。还将失败的方法添加到ajax请求中,如so.fail(函数(jqXHR,textStatus,errorhorn){console.info(errorhorn);}在完成调用后,使用chrome控制台查看输出将使您更好地了解类似于@Norbert PiszAlso的错误,因为您使用的是1.9版本,您是否也在运行jquery迁移插件,因为这可能是abel来帮助您,如果验证插件尚未更新到最新版本的jquery,则它将被删除可能是插头本身,只是一个想法