2015-03-16 3 views
-1

J'utilise jquery 1.8.3 et jquery validation plugin 1.13.1 qui est une dernière version de validation. ma forme ressemble à ceci,Validations Mura 6 et jquery 1.13.1 - Formulaire invalide soumis

<form method="post" class="contact-form" id="frmB5B976FFD59E885191DA4D572F6F773A" action="?nocache=1#frmB5B976FFD59E885191DA4D572F6F773A" novalidate="novalidate"><input type="hidden" value="true" name="useProtect"> 
    <input type="hidden" value="0" class="cffp_mm" name="formfield1234567891" id="fp6939F8D3-F46A-C008-37330D6AA1B0BED2"> 
    <input type="hidden" value="" class="cffp_kp" name="formfield1234567892" id="fp6939F8D4-FE37-FF6D-AD27DC356205A886"> 
    <input type="hidden" value="39890522,19894825" name="formfield1234567893" id="fp6939F8D6-F82F-92B8-A4B0BA6A966190FA"> 
    <label style="display:none">Leave this field empty <input type="text" value="" name="formfield1234567894" id="fp6939F8D7-AB86-5202-464CA191E50CE678"></label> 
    <p class="column one-half"><input type="text" required="" placeholder="Please Enter First Name" name="fname" id="fname" aria-required="true"></p> 
    <p class="column one-half last"><input type="text" required="" placeholder="Please Enter Last Name" name="lname" aria-required="true"></p> 
    <p class="column one-half"><input type="email" required="" placeholder="Please Enter Email" name="email" aria-required="true"></p> 
    <p class="column one-half last"><input type="text" required="" placeholder="Please Enter Phone Number" name="tel" aria-required="true"></p> 
    <p class="clear"><textarea rows="3" required="" placeholder="Please Enter Message" name="comment" cols="5" aria-required="true"></textarea></p> 
    <p><input type="submit" id="submitme" value="Submit" name="submitme"></p> 
</form> 

Et mes ressemble à ceci validations -

var ruleSet = {required: true}; 
jQuery("#frmB5B976FFD59E885191DA4D572F6F773A").validate({ 
    rules:{ 
     fname: ruleSet, 
     lname: ruleSet, 
     email: { required: true, email: true }, 
     phone: { required: true, phoneUS: true }, 
     message: { required: true } 
    } 
}); 

La forme est en section formes admin mura. J'ai créé cela en utilisant l'éditeur de formulaire. Je n'arrive pas à comprendre pourquoi le formulaire est soumis même s'il y a des champs non valides, parce que les validations HTML5 sont désactivées par le plugin de validation et Mura soumet simplement le formulaire, que le formulaire soit valide ou invalide! Mais alors pourquoi le plugin de validation ne fait-il pas preventdefault() si les validations échouent? En outre, j'ai essayé d'utiliser JSFiddle pour les validations et cela fonctionne. Sil te plait aide moi. Merci. FYI. Le formulaire ci-dessus html est celui de "source de la page" et pas de formulaire réel de l'éditeur de formulaire. C'est pourquoi tous les étranges form id et cffp_mm etc.

+0

JavaScript ne se soucie pas de votre infrastructure ou CMS. Tout ce qui compte est le code rendu dans la source du navigateur. En attendant, le code que vous nous avez montré fonctionne parfaitement: http://jsfiddle.net/oemuca7u/ – Sparky

+0

Si le formulaire est soumis alors qu'il n'est pas valide, cela signifie simplement que quelque chose est cassé dans le JavaScript. Regardez la console d'erreur JavaScript de votre navigateur. – Sparky

+0

Je n'obtiens aucune erreur dans 'firebug'. J'ai mentionné dans ma question que le code fonctionne bien dans le violon. J'ai débogué plus et j'ai découvert que Mura appelle une fonction 'validate()' qui est un appel ajax une fois que le bouton submit est cliqué. L'URL était-ce 'localhost/tasks/validate/remote.cfc? Method = validate' – user2067888

Répondre

0

Pour ceux qui sont venus ici à la recherche du même problème. J'ai ajouté novalidate="novalidate" onsubmit="return true; à la balise form et cela a fait l'affaire. Mura remplaçait les validations de jquery, même si le plugin jQuery Validation mettait l'attribut novalidate dans la balise de formulaire, je devais donc y ajouter manuellement novalidate. J'espère que ça aide.

+0

La réponse n'a aucun sens compte tenu du contenu de votre OP. La balise 'novalidate' est automatiquement placée là quand jQuery Validate est initialisée et elle est seulement là pour arrêter la validation HTML5. Que ce soit là ou non, jQuery Validate est ce qui empêche la soumission du formulaire invalide. Une chose non identifiée est de casser votre JavaScript ou d'empêcher le plugin de s'initialiser correctement. – Sparky

+0

Est-ce que 'onsubmit =" retourner vrai, 'il ya tout ce temps? Je ne vois pas comment cela peut aider quoi que ce soit. – Sparky