0
私はフォームを検証する前にフォームを検証するためにツールチップスクリプトを使用しましたが、検証にもかかわらずsymfonyのコントローラに送信されるアクションは正しくありません。これは小枝でアクションは検証なしのフォームで送信されます
<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>
問題、スクリプトが検証しますフォームを表示し、私にエラーを表示するが、その後、コントローラにフォームを提出し、私は大きな問題がある。
具体的な問題を明確にしたり、詳細を追加して必要なものを正確に強調してください。現在書かれているとおり、あなたが求めていることを正確に伝えるのは難しいです。この質問を明確にするために、[How to Ask]ページ(http://stackoverflow.com/help/asking)を参照してください。 – lrnzcig
スクリプトはフォームの検証を行い、エラーを表示し、それが間違っているにもかかわらずフォームを送信した後に表示されます。通常はフォームを検証し、エラーを修正してからフォームを送信する必要がありますが、私のケースでは、スクリプトは2つのケース(正しいかどうか)でフォームを送信します。私はフォームを正しく検証する必要があります。その後、フォームを一度送信すると、すべてのエラーが修正されています。 –
「返されました」と表示された[関連する回答](http://stackoverflow.com/a/11607773/3585500) 'false'は動作せず、' xhr.abort'を呼び出しました。あなたの 'form id = 'rappel-form''にも気付きましたが、あなたのjqueryセレクタは' formulaire'です。 – ourmandave