Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
jQuery-validate-如何将动态消息设置为动态验证规则?_Jquery_Validation - Fatal编程技术网

jQuery-validate-如何将动态消息设置为动态验证规则?

jQuery-validate-如何将动态消息设置为动态验证规则?,jquery,validation,Jquery,Validation,我想为一组元素设置一个动态规则,多个输入具有class=website,并通过远程验证来检查输入url的有效性。 问题是,我几乎无法设置一条动态错误消息,其中包含使用链接输入的值,以测试url,如下所示: 网站不存在:使用链接输入url 我找到的唯一方法是让远程方法设置消息并以JSON格式返回,然后在dataFilter中设置输入标题。但问题是,我将html标记放在html属性标题中。这是可行的,但不是很正确。 请注意,如果在消息属性构造函数中使用变量,则返回的值是DOM完成后的值,而不是输入的

我想为一组元素设置一个动态规则,多个输入具有class=website,并通过远程验证来检查输入url的有效性。 问题是,我几乎无法设置一条动态错误消息,其中包含使用链接输入的值,以测试url,如下所示:

网站不存在:使用链接输入url

我找到的唯一方法是让远程方法设置消息并以JSON格式返回,然后在dataFilter中设置输入标题。但问题是,我将html标记放在html属性标题中。这是可行的,但不是很正确。 请注意,如果在消息属性构造函数中使用变量,则返回的值是DOM完成后的值,而不是输入的值请参见注释

$.each($(".website"), 
                function() {

                    var elementId =  $(this).attr('id');

                    $(this).rules("add",{

                        remote : 
                          {   
                              url: 'check-url.php',
                              type: "post",
                              data:
                              {
                                  prefix: function() {
                                    return  $("#"+ elementId).prev().val();
                                }
                              },
                            dataFilter: function (data) {
                                var json = JSON.parse(data);
                                $("#"+elementId).attr('title',json.error);
                                return json.msg;
                            },// message not OK (value on DOM complete)
                            messages : 'The web site doesnt exist : ' + $("#"+ elementId).prev().val() 

                          }
                    });
                }
            );
谢谢

试试看

$(".website").each(function () {

    var $el = $(this);

    $el.rules("add", {
        remote: {
            url: 'check-url.php',
            type: "post",
            data: {
                prefix: function () {
                    return $el.prev().val();
                }
            }
        },
        messages: {
            remote: function () {
                return 'The web site doesnt exist : ' + $el.prev().val();
            }
        }
    });
});

谢谢,但它不起作用:发送的数据是DOM完成后的值,因为$el类似于加载时解释,而不是事件时解释。这就是我使用带+id的eval-like提示的原因。其次,该消息不被视为带有return的事件,我有默认消息。@user3464543未在消息回调中添加return。。还要确保元素$el.prev正确。即使返回和静态消息文本,也不会考虑消息:我有默认消息,请修复此字段。我已经尝试了文档中提供的所有不同的语法,但没有成功。有人解决了这个问题吗。如果是,请邮寄。