我正在使用Parsely来验证依赖于另一个字段的字段。我也使用Bootstrap工具提示来显示错误。
我创建了一个自定义验证器来验证值大于或等于另一个输入值的输入。我希望在用户出错时显示第一个文本框中的值的错误消息。
var v="";
window.ParsleyValidator.addValidator('gte',
function (value, requirement) {
v=$(requirement).val();
alert(v);
return parseFloat(value) >= parseFloat($(requirement).val());
}, 32)
.addMessage('en', 'gte', 'This value should be greater or equal to '+v);
在此JSfiddle中是一个完整的例子。
要测试此项,请将值2放在第一个文本框中,将1放在第二个文本框中。正确的错误消息应该是
此值应大于或等于2.
如果我设置变量' v'等于它在错误消息中附加的内容。如果我尝试将其设置为$(requirement).val()
,则无效。
答案 0 :(得分:2)
我们应该更新目录以完成它:)
以下是适合您的小提琴:
只有我在下面的验证器脚本中所做的更改才是相同的
//var v = "";
window.ParsleyValidator.addValidator('gte',
function (value, requirement) {
window.ParsleyValidator.catalog.en.gte = 'This value should be greater or equal to ' + $(requirement).val();
return parseFloat(value) >= parseFloat($(requirement).val());
}, 32)
//.addMessage('en', 'gte', 'This value should be greater or equal to ' + v);
答案 1 :(得分:0)
问题是您在不同的上下文中使用v
。应该注意v
中addValidator
已正确设置。您正试图在addMessage
中使用该函数外部。
您可以通过手动设置消息来解决此问题,如下所示:
var v="";
window.ParsleyValidator
.addValidator('gte', function (value, requirement) {
v = $(requirement).val();
if (parseFloat(value) < parseFloat(v)) {
window.ParsleyValidator.addMessage('en', 'gte',
'This value should be greater or equal to ' + v);
return false;
}
return true;
}, 32);
您可以使用window.ParsleyValidator.addMessage
在实际验证中添加消息,而不是在验证程序的定义中传递消息。
您可以使用this updated jsfiddle进行测试。
我想提两件事:
Greater than or equal to
。我从来没有使用过它们但是如果你想要我想只是包含comparison.js
文件可以是downloaded from GitHub。但是,我不确定消息的行为方式。