我正在使用 parsley.js 来验证我的表单。 我想用ajax检查我的数据库中是否存在某个元素。 所以我这样做了:
{{ form_widget(form.companyname, {'attr': {'class': 'md-input', 'required':'', 'data-parsley-company':'3'}}) }}
<script>
$('#sbcplatformbundle_fournisseur_companyname').on('change', function () {
$comanyname = $('#sbcplatformbundle_fournisseur_companyname').val();
var url = '{{ path('fournisseur_bycompanyname', {'companyname': 'companyName'}) }}';
url = url.replace('companyName', $comanyname);
$.ajax({
async: true,
type: "GET",
url: url,
success: function (json) {
console.log(JSON.stringify(json));
if (json.success == true) {
// declancher une exeption
window.Parsley.addValidator('company', {
validate: function (value) {
return value;
}
}).addMessage('en', 'This company name already exists');
}
}
});
});
</script>
这对于第一次更改不起作用。在第二个更改中,我在 consile 发现了此警告消息:
main_Mask_parsley.min_1.js:16 Validator "company" is already defined.
我必须怎么做?
最佳答案
您的代码显示出一些困惑:
- 您不应该自己触发验证,而应该告诉 Parsley 如何执行。
- 在初始化时注册一次自定义验证器。
- 无需自己进行 ajax 调用,使用
远程
验证器。
祝你好运
关于javascript - 我定制的欧芹新违规不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41613917/