使用 Parsley.addAsyncValidator 时如何才能将消息本地化?
How can I have localized messages when using Parsley.addAsyncValidator?
假设我添加了以下异步验证器:
Parsley.addAsyncValidator('availableEmail', function (xhr) {
return 200 === xhr.status;
}, '/available-email');
我在这样的输入中使用它:
<input
id="email"
type="email"
name="email"
data-parsley-remote
data-parsley-remote-validator="availableEmail"
data-parsley-remote-message="This email is unavailable"
>
现在这工作正常,如果验证失败,它会向我显示错误消息。但是,无论如何我都找不到本地化错误消息的方法。
我尝试过的事情:
- 向其中一个本地化文件添加
remote
属性:
不幸的是,这使得该消息对于所有异步验证器都是全局的,而我只希望它应用于 available-email
验证器。
- 将带有
messages
属性 的选项对象传递给 addAsyncValidator
方法,这似乎不起作用(与 addValidator
方法不同)。
首先,这里不需要自定义 "asyncValidator"。该名称实际上并不准确,它实际上仅用于处理不仅仅是 REST 的结果。
最好使用自定义验证器并自己调用 $.ajax
,例如 in the first example here。
假设我添加了以下异步验证器:
Parsley.addAsyncValidator('availableEmail', function (xhr) {
return 200 === xhr.status;
}, '/available-email');
我在这样的输入中使用它:
<input
id="email"
type="email"
name="email"
data-parsley-remote
data-parsley-remote-validator="availableEmail"
data-parsley-remote-message="This email is unavailable"
>
现在这工作正常,如果验证失败,它会向我显示错误消息。但是,无论如何我都找不到本地化错误消息的方法。
我尝试过的事情:
- 向其中一个本地化文件添加
remote
属性: 不幸的是,这使得该消息对于所有异步验证器都是全局的,而我只希望它应用于available-email
验证器。 - 将带有
messages
属性 的选项对象传递给addAsyncValidator
方法,这似乎不起作用(与addValidator
方法不同)。
首先,这里不需要自定义 "asyncValidator"。该名称实际上并不准确,它实际上仅用于处理不仅仅是 REST 的结果。
最好使用自定义验证器并自己调用 $.ajax
,例如 in the first example here。