jQuery-validate-如何将动态消息设置为动态验证规则?
我想为一组元素设置一个动态规则,多个输入具有class=website,并通过远程验证来检查输入url的有效性。 问题是,我几乎无法设置一条动态错误消息,其中包含使用链接输入的值,以测试url,如下所示: 网站不存在:使用链接输入url 我找到的唯一方法是让远程方法设置消息并以JSON格式返回,然后在dataFilter中设置输入标题。但问题是,我将html标记放在html属性标题中。这是可行的,但不是很正确。 请注意,如果在消息属性构造函数中使用变量,则返回的值是DOM完成后的值,而不是输入的值请参见注释jQuery-validate-如何将动态消息设置为动态验证规则?,jquery,validation,Jquery,Validation,我想为一组元素设置一个动态规则,多个输入具有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正确。即使返回和静态消息文本,也不会考虑消息:我有默认消息,请修复此字段。我已经尝试了文档中提供的所有不同的语法,但没有成功。有人解决了这个问题吗。如果是,请邮寄。