Frage

Meine spezifische Frage/mein Problem haben mit der Implementierung von V1.7 des JQuery -Validierungs -Plugins von Cedric Dugas zu tun.http://www.position-absolute.com/articles/jquery-form-validator-because-form-form-validation-is-a-mess/#comments), Aber ich glaube, das Problem kann leicht auf andere Situationen verallgemeinert werden.

Normalerweise lade ich das folgende Skript wie SO:

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

Um das Plugin zu initialisieren, mache ich Folgendes:

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

Ich habe ein Formular mit einem ID -Attribut mit einem Wert von "myFormID" und das Skript validiert die Formularfelder. Das funktioniert.

Wenn ich jedoch die beiden Code -Code -Bits auf jeder Seite einfüge, aber die Seite hat kein Formular mit einer ID von MyFormID, dann erhalte ich einen Nullfehler. Um zu versuchen, dieses Problem anzugehen und das Plugin nur dann zu laden, wenn ein geeignetes Formular vorliegt, habe ich Folgendes ausprobiert:

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

Das funktioniert auch gut. Jetzt kann ich jedoch nicht herausfinden, wie man das ValidationEngine initialisieren und an das Formular binden. Warum funktioniert das nicht?

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

Ich habe es auch versucht:

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

Kein Glück. Ich erhalte diesen Fehler: $ ("#myFormid") ist null.

Ideen? Ich bin fast kahl wie es ist. Das hilft nicht!

War es hilfreich?

Lösung 2

Es stellte sich heraus, dass es sich um einen Prototypenkonflikt aus einem von einem anderen Entwickler hinzugefügten Skript handelte. Es war nichts von Natur aus falsch mit

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

Andere Tipps

Sie können die JS in alle Ihre Seiten einbeziehen, rufen jedoch nur dann ValidationEngine auf. So wie das:

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

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top