Bonjour,
J'ai un formulaire avec des contraintes sur les champs et j'aimerais que cela bloque la requête d'insertion si les champs ne sont pas valide.
J'ai utilisé des fonctions js tiré d'un exemple, donc je pense qu'elle fonctionne, le problème doit venir de la form de Symfony.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 {{ form_start(form, {'attr': {'class': 'formoid-solid-green formbootstrapcustom', 'onSubmit':'return verifForm()'}}) }} <div class="row"> <div class="col-md-5 col-md-offset-1"> <div class="element-input"> <label class="title"> {#<span class="required">*</span>#} </label> <div class="item-cont"> {{ form_errors(form.name) }} {{ form_widget(form.name, {'attr': {'onblur':'return verifPseudo(this)'}}) }} <span class="icon-place"></span> </div> </div> </div> ... <div class="submit"><input type="submit" value="Envoyer"/></div> {{ form_rest(form) }} {{ form_end(form) }} <script> function surligne(champ, erreur) { if(erreur) champ.style.backgroundColor = "#fba"; else champ.style.backgroundColor = ""; } function verifPseudo(champ) { if(champ.value.length < 2 || champ.value.length > 25) { surligne(champ, true); return false; } else { surligne(champ, false); return true; } } function verifMail(champ) { var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/; if(!regex.test(champ.value)) { surligne(champ, true); return false; } else { surligne(champ, false); return true; } } function verifForm(f) { var pseudoOk = verifPseudo(f.pseudo); var mailOk = verifMail(f.email); if(pseudoOk && mailOk) return true; else { alert("Veuillez remplir correctement tous les champs"); return false; } } </script>
Partager