以未经验证的形式提交的行动

时间:2016-03-21 16:35:50

标签: php jquery forms validation symfony

我想在总结之前验证我的表单,我使用工具提示脚本来验证我的表单,但总是在symfony中发送给控制器的操作尽管验证不正确。这是我在twig中的代码

       <form id="rappel-form" class="form-horizontal" name="rappelform" method="post" enctype="multipart/form-data"
                                          action="{{ path('register') }}">

..............

/>

在我的脚本块中,这是我的代码:

 <script>

      jQuery('#formulaire').ajaxForm({

        beforeSubmit: function (arr, $form, options) {


            if(! $form.valid()) return false;

            else return true;
        },

        success: function (data) {
            if(data.dataa!=null){
                alert(" succées");
            }
            else
                alert('erreur d éxécution de la requête');


        },
        error: function () {
            //jQuery('#main-content').html("erreur d'éxécution de la requête");
            alert('erreur d éxécution de la requête');

        }
    });
</script>

并在document.ready

 <script type="text/javascript">


    $(document).ready(function () {
        jQuery.validator.addMethod("regexphone", function (value, element, regexp) {

            if (regexp.constructor != RegExp)
                regexp = new RegExp(regexp);
            else if (regexp.global)
                regexp.lastIndex = 0;
            return this.optional(element) || regexp.test(value);
        }, "");
        $(document).ready(function () {
            $('#formulaire input[type="text"]').tooltipster({
                trigger: 'custom', // default is 'hover' which is no good here
                onlyOne: false,    // allow multiple tips to be open at a time
                position: 'right'  // display the tips to the right of the element
            });
            $('#formulaire input[type="password"]').tooltipster({
                trigger: 'custom', // default is 'hover' which is no good here
                onlyOne: false,    // allow multiple tips to be open at a time
                position: 'right'  // display the tips to the right of the element
            });
            $('#formulaire input[type="number"]').tooltipster({
                trigger: 'custom', // default is 'hover' which is no good here
                onlyOne: false,    // allow multiple tips to be open at a time
                position: 'right'  // display the tips to the right of the element
            });

            $('#formulaire').validate({ // initialize the plugin
                errorPlacement: function (error, element) {
                    $(element).tooltipster('update', $(error).text());
                    $(element).tooltipster('show');
                },
                success: function (label, element) {
                    $(element).tooltipster('hide');
                },
                rules: {
                    'contact[name]': {
                        required: true,
                        minlength: 2
                    },
                    'contact[gsmPrimary]': {
                        required: true,
                        'regexphone': /^0[1-9][0-9]{8}$/
                    },
                    'contact[lastName]': {
                        required: true,
                        minlength: 2
                    },
                    'contact[listcountry]': {
                        required: true,

                    }

                },
                messages: {

                    'contact[name]': {
                        required: "{{ 'message.contact.nom.required'|trans }}",
                        minlength: "{{ 'message.contact.nom.min'|trans }}",
                        maxlength: "Votre nom doit faire au plus 50 caractères."
                    },

                    'contact[gsmPrimary]': {
                        required: "{{ 'message.contact.telephone.required'|trans }}",
                        'regexphone': "{{ 'message.contact.telephone.validation'|trans }}"
                    },
                    'contact[lastName]': {
                        required: "{{ 'message.contact.prenom.required'|trans }}",
                        minlength: "{{ 'message.contact.prenom.min'|trans }}"
                    },
                    'contact[listcountry]': {
                        required: "{{ 'message.contact.country'|trans }}",

                    }

                },
                submitHandler: function (form) { // for demo
                    //alert('valid form submitted'); // for demo
                    return false; // for demo
                }
            });

        });
    });

</script>

问题,脚本验证表单并向我显示错误,但在此之后将表单提交给控制器,我遇到了很多问题。

任何想法请如何解决问题

1 个答案:

答案 0 :(得分:0)

脚本侦听附加到不存在的元素的事件。假设上面发布的代码是正确的,您需要定位要正确增强的表单。