Domanda

La mia specifica domanda / problema ha a che fare con l'attuazione v1.7 di Cedric Dugas' jQuery convalida del plugin ( http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a- disordine / # commenti ), ma credo che il problema può essere facilmente generalizzabile ad altre situazioni.

In genere ho caricare il seguente script in questo modo:

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

Poi per inizializzare il plugin, faccio la seguente:

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

Ho una forma con un attributo id con un valore di "myFormID" e lo script convalida i campi del modulo. Questo funziona.

Tuttavia, se includere i due bit di codice in ogni pagina, ma la pagina non dispone di un modulo con un ID di myFormID, allora ottengo un errore nullo. Per cercare di risolvere questo problema e rendere il carico plug-in solo quando esiste una forma adeguata, ho provato questo:

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

Questo funziona bene anche. Tuttavia, ora non riesco a capire come inizializzare il validationEngine e associarlo al form. Perché non fa questo lavoro?

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

Inoltre ho provato questo:

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

Nessuna fortuna. Ottengo questo errore: $ ( "# myFormID") è nullo

.

Idee? Sto quasi calvo così com'è. Questo non aiuta!

È stato utile?

Soluzione 2

Abbiamo scoperto che era un conflitto prototipo da uno script inserito da un altro sviluppatore. Non c'era niente di intrinsecamente sbagliato con

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

Altri suggerimenti

È possibile includere i js in tutte le pagine, ma chiamare validationEngine solo quando esiste forma. Come quella:

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top