我正在使用jQuery验证插件,并且效果很好。

我希望能够在远程ajax失败时显示消息并触发模式(在示例中为alert())。我不知道该怎么做。现在,它按预期触发了alert(),但还附加了错误消息“请修复此字段”,该消息应该是我自己的自定义错误消息。

这是我得到的:

$("#adresse-form").validate({

        errorElement: "span",

        rules: {

            navn: {
                required: true,
                minlength: 5,
                maxlength: 25
            },
            tlf: {
                required: true,
                digits: true,
                minlength: 8,
                remote: {
                    url: "/ajax/check_tlf",
                    type: "post"
                }
            }
        },

        messages: {

            navn: "Field Name is required",
            tlf: {
                required: "Field tlf is required!",
                remote: function () { // i want to add the message aswell, not just the alert

                    alert("failed - tlf is already taken!");
                }
            }

        },
        submitHandler: function(form) {
            doSomethingGreatOnSuccess();
        },

        errorPlacement: function (error, element) {
            error.appendTo(element.parent());
        }

    });

最佳答案

引用OP评论:“返回的字符串每次都有效,但是
.reveal()仅在页面加载后第一次触发。”


我认为您只得到模态一次,因为Validate插件仅一次构造消息(然后使用hide / show)。如果您希望每次都触发它,请尝试使用highlight回调函数。与onkeyuponfocusout设置为false结合使用。

onkeyup: false,
onfocusout: false,
highlight: function(element, errorClass) {
   if ($(element).attr('name') === 'remotefieldname') {
       $('#myModal').reveal();
   }
}


演示:http://jsfiddle.net/NFRvT/1/

10-08 00:14