Question

Ma question spécifique / problème a à voir avec la mise en œuvre v1.7 de Cedric Dugas' plug-in validation jQuery ( http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a- Mess / # commentaires ), mais je crois que la question peut facilement être généralisé à d'autres situations.

En général, je charge le script suivant comme ceci:

<script src="inc/formValidator/js/jquery.validationEngine.js" type="text/javascript"></script> 

Ensuite, pour initialiser le plug-in, je fais ce qui suit:

<script> 
$(document).ready(function() {      
    $("#myFormID").validationEngine();
});
</script>

J'ai une forme avec un attribut id avec une valeur de « myFormID » et le script valide les champs de formulaire. Cela marche.

Cependant, si j'inclure les deux bits de code sur chaque page, mais la page n'a pas de forme avec un ID de myFormID, j'obtiens une erreur null. Pour tenter de résoudre ce problème et de faire la charge de plug-in uniquement lorsqu'une forme appropriée existe, j'ai essayé ceci:

<script>
    if($('#myFormID').length) 
    {
        $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() {
            alert('Load was performed.');
        });
    };
</script>

Cela fonctionne bien aussi. Cependant, maintenant je ne peux pas comprendre comment initialiser le validationEngine et le lier à la forme. Pourquoi pas ce travail?

    $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() 
    {
        $("#myFormID").validationEngine();
    });

J'ai aussi essayé ceci:

    $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() 
    {
        $("#myFormID").load(function()
        {
            $(this).validationEngine();
        });
    });

Non chance. Je reçois cette erreur: $ ( "# myFormID") est nulle

.

Des idées? Je suis presque chauve comme il est. Ce ne contribue pas!

Était-ce utile?

La solution 2

Il se trouve que ce fut un conflit de prototype à partir d'un script ajouté par un autre développeur. Il n'y avait rien d'intrinsèquement mauvais avec

<script>
    if($('#myFormID').length) 
    {
        $.getScript('inc/formValidator/js/jquery.validationEngine.js', function() {
            $("#myFormID").validationEngine();
        });
    };
</script>

Autres conseils

Vous pouvez inclure les js dans toutes vos pages, mais appelez validationEngine uniquement lorsque le formulaire existe. Comme ça:

<script src="inc/formValidator/js/jquery.validationEngine.js" type="text/javascript"></script> 

  
$(document).ready(function() {
if($('#myFormID').length) 
    {
     $("#myFormID").validationEngine();
    }
});

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top