首页 > 解决方案 > JQuery 验证远程函数不显示验证消息

问题描述

我刚刚开始学习 JQuery validate 并且在尝试使用远程功能时遇到了一个问题(毫无疑问是我自己造成的)。

对我的操作的调用有效,并且正在访问我的 API 并返回我期望的值,我还测试了调用的输出,console.log()所以我很高兴正在调用并返回值。

返回值为 true 时,不会出现验证消息。真实UniqueMappingRef存在,因此错误消息这样说。

我已经看到了一个答案,但这似乎只允许一个远程功能,当我需要在这个问题中已经存在的一个之外再增加四个时:

目前根本没有消息出现。

该代码位于规则部分并称为UniqueMappingRef.

    $("#ProjectPrepForm").validate({
        onkeyup: false,
        rules: {
            ProjectName: {
                required: true
            },
            UniqueMappingRef: {
                required: true,               
                remote: {
                    type: "POST",
                    url: "/ProjectPrep/CheckUniqueMappingRef/",
                    data: {
                        'internalRef': function () {
                            return $('#UniqueMappingRef').val()
                        }
                    },
                    success: function (d) {                        
                        if (d == true) {
                            messages:{
                                UniqueMappingRef: 'It already exists.'
                            }

                        }
                    },
                    error: function (request, status, errorThrown) {
                        alert(status);
                    }
                }
            }            
        },
        messages: {
            ProjectName: {
                required: 'Enter an project name'
            },
            UniqueMappingRef: {
                required: 'Enter a unique mapping reference'
            }               
        }
    });
});

问题:即使 API 返回正确的值,也不会显示远程调用的验证消息。

预期结果:当为 true 时,显示验证消息,为 false 时消息消失。一旦我明白我做错了什么,我将添加另外四个不同元素的调用。

标签: jqueryjquery-validate

解决方案


推荐阅读