由我定制的欧芹新违规行为不起作用

时间:2017-01-12 13:00:41

标签: javascript jquery twig parsley.js

我正在使用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验证员“公司”已经定义。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您的代码显示了一些混淆:

  • 你不应该自己触发验证,而是告诉Parsley如何做。
  • 在初始时注册一次自定义验证程序。
  • 无需自己进行ajax调用,请使用remote验证程序。
祝你好运