Question

Cette question vient après résoudre ma dernière question , je voudrais obtenir des valeurs hors des formes cachées mais quand je tente de les récupérer uniquement des chaînes vides trouver, je l'ai juste à l'aide des tableaux considérés comme pour stocker les informations qu'il est présenté, mais je voudrais de savoir s'il est possible juste pour le récupérer plus tard et comment.

En outre, il y a une table qui est générée à la volée avec javascript:

function createTable(){
        if ( document.getElementById("invoiceFormat").rowNumber.value != ""){
            rows = document.getElementById("invoiceFormat").rowNumber.value;
        }

        var contents = "<table id='mt'><tr>";

        if ( document.getElementById("invoiceFormat").cb1[0].checked ){
            contents = contents + "<td class='htd'>Quantity</td>";
        }if (document.getElementById("invoiceFormat").cb1[1].checked ){ 
            contents = contents + "<td class='htd'>Description</td>";
        }if (document.getElementById("invoiceFormat").cb1[2].checked ){ 
            contents = contents + "<td class='htd'>Unitary Price</td>";
        }if (document.getElementById("invoiceFormat").cb1[3].checked ){ 
            contents = contents + "<td class='htd'>Subtotal</td>";
        }

        for (i=4; i<=k; i++){
            if (document.getElementById("invoiceFormat").cb1[i].checked ){
                contents = contents + "<td>" + document.getElementById("invoiceFormat").cb1[i].value + "</td>";
            }
        }


        contents = contents + "</tr>";

        for (j=1; j<=rows; j++){
            contents = contents + "<tr>";
            for (l=0; l<=k; l++){
                if (document.getElementById("invoiceFormat").cb1[l].checked ){
                hotfix = l +1;
                contents = contents + "<td> <input id='cell" + j + "_" + hotfix + "' name='cell' type='text' size='15' /> </td>";
                }
            }
            contents = contents + "</tr>";
        }

        contents = contents + "</table>";
        var createdTable = document.getElementById("mainTable");
        createdTable.innerHTML = contents;  

    }

après sa création, je l'ai essayé d'y accéder, mais sans la chance jusqu'à présent, je ne peux pas obtenir ce que les entrées de l'utilisateur dans les champs d'entrée qui sont créés. Comment puis-je faire?

J'utilise javascript brut avec jQuery donc des réponses avec ou sans la bibliothèque sont les bienvenus:)

Était-ce utile?

La solution

document.getElementById ( "invoiceFormat"). CB1 [3] .checked Tout d'abord je ne sais pas ce que « .cb1 [3] » signifie ici, donc je vais l'ignorer et vous dire comment je résoudre ce problème: (je suppose que « invoiceFormat » est id de votre formulaire.) 1) dans votre propriété de nom du jeu de forme de tous les domaines que vous avez. De cette façon vous pouvez les atteindre comme document.getElementById("invoiceFormat").fieldName.value

si vous utiliserez cette marque de méthode sûre qui a mis votre formulaire dans une variable locale. il sera beaucoup plus rapide

var form = document.getElementById("invoiceFormat");
form.fieldName.value;

2) donner tous les domaines que vous avez un identifiant unique et il suffit d'utiliser getElementById directement sur les champs non sur la forme. Je ne suis pas poursuivre en justice si cette méthode est mieux, mais je suis useing seconde tout le temps. Je viens de m'y habituer, je suppose.

3) il y a une autre façon, mais il pourrait être un surpuissant. lorsque vous créez vos champs de formulaire, vous pouvez les mettre dans un objet (non valeurs, mais les éléments eux-mêmes) et même le cacher dans une fermeture . De cette façon, vous pouvez appeler quelque chose comme

formElements.formFieldOne.value;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top