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

时间:2014-10-13 09:08:06

标签: jquery validation

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

"网站不存在:使用链接"输入网址。

我找到的唯一方法是使远程方法设置消息并以JSON格式返回,然后在dataFilter中设置输入标题。但问题是我将html标签放在HTML属性(标题)中。这有效,但不是很正确。 请注意,如果我在message属性构造函数中使用变量,则返回的值是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() 

                          }
                    });
                }
            );

谢谢

1 个答案:

答案 0 :(得分:0)

尝试

$(".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();
            }
        }
    });
});