6
votes

Ajouter un élément de formulaire de manière dynamique à l'aide de JavaScript - ne soumettez pas

EDIT: J'ai corrigé le problème en commençant juste à partir de zéro. Désolé de gaspiller le temps. S'il vous plaît voter pour fermer si vous vous sentez tellement enclin.

J'ai des difficultés à obtenir les données réelles sous un formulaire à soumettre lorsque les champs de saisie sont ajoutés via JavaScript. Les champs apparaissent et au bon endroit, mais quand je fais un Var_Dump (Nom de terrain) du côté serveur, rien ne s'affiche. Inspection avec des en-têtes HTTP en direct me dit que le navigateur n'essaie pas de soumettre les champs de formulaire ajoutés de manière dynamique. P>

Dois-je en quelque sorte "Joindre" mes entrées de formulaire créé de manière dynamique sur le formulaire? P>

mon code: p>

html em> p> xxx pré>

javascript em> p>

function addFormField()
{
 var id = 1;
 var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>";
 $("#add_fields".append( htm );
}


2 commentaires

Est-ce que cela fonctionne à AL si vous appendez le HTML à, par exemple, un fichier champique -CHILD du formulaire?


Pas sûr, mais j'essaie de ne pas rester coincé sur cette instance. Ça va dans un HTML assez laid. A manqué de temps imparti pour essayer toutes les grandes suggestions, mais merci à tous pour votre aide! Problème de clôture.


4 Réponses :


2
votes

Il y a 2 typos dans votre code: HTM au lieu de HTML

et add_fields / add_files


0 commentaires

0
votes

est que votre code actuel?

Si tel est le cas, vous n'avez pas fermé la balise d'entrée et la balise P. Donc, peut-être que la forme les ignore .. p>

var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>";


0 commentaires

1
votes

Il y avait beaucoup de fautes de frappe dans votre code. Par exemple, vous n'avez pas fermé la balise sélecteur pour JQuery.

vous mettez $ ("# add_fields" .append (htm);

aurait dû être $ ("# add_fields"). APPEND (HTM);

Notez les parents manquants.

Mais je crois que votre problème se situe principalement dans comment vous J'essaie d'accéder aux valeurs via PHP. Je viens de mettre votre source dans une page de test et tout fonctionne si vous accédez correctement aux valeurs correctement. xxx

La source ci-dessus fonctionne bien.


0 commentaires

1
votes

Lorsque vous ajoutez / ajoute ou utilise innerhtml pour placer les champs de formulaire en tant que HTML, alors il le placera parfois en dehors du formulaire, vous le verrez dans le cadre de la forme mais en interne, ce n'est pas le cas.

Pour résoudre ce problème, vous devez ajouter attribut avec entrée classée comme formulaire = MyForm et MyForm devrait être votre identifiant de formulaire.


0 commentaires