我刚刚开始学习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时,消息消失。一旦了解了我做错了什么,我将针对不同的元素再添加四个呼吁。