352 votes

Jquery - Créer un élément de formulaire caché à la volée

Quel est le moyen le plus simple de créer dynamiquement un champ de formulaire d'entrée caché en utilisant jquery?

667voto

David Points 36241
 $('<input>').attr('type','hidden').appendTo('form');
 

Pour répondre à votre deuxième question:

 $('<input>').attr({
    type: 'hidden',
    id: 'foo',
    name: 'bar'
}).appendTo('form');
 

152voto

Mark Bell Points 11287
$('#myformelement').append('<input type="hidden" name="myfieldname" value="myvalue" />');

30voto

Kamika Points 328

Si vous voulez ajouter plus d'attributs, faites comme:

 $('<input>').attr('type','hidden').attr('name','foo[]').attr('value','bar').appendTo('form');
 

Ou

 $('<input>').attr({
    type: 'hidden',
    id: 'foo',
    name: 'foo[]',
    value: 'bar'
}).appendTo('form');
 

8voto

function addHidden(theForm, key, value) {
    // Create a hidden input element, and append it to the form:
    var input = document.createElement('input');
    input.type = 'hidden';
    input.name = key;'name-as-seen-at-the-server';
    input.value = value;
    theForm.appendChild(input);
}

// Form reference:
var theForm = document.forms['detParameterForm'];

// Add data:
addHidden(theForm, 'key-one', 'value');

2voto

Subodh Ghulaxe Points 2346

JSFIDDLE de travail

Si votre formulaire est comme

 <form action="" method="get" id="hidden-element-test">
      First name: <input type="text" name="fname"><br>
      Last name: <input type="text" name="lname"><br>
      <input type="submit" value="Submit">
</form> 
    <br><br>   
    <button id="add-input">Add hidden input</button>
    <button id="add-textarea">Add hidden textarea</button>
 

Vous pouvez ajouter une entrée et une zone de texte cachées pour former comme ceci

 $(document).ready(function(){

    $("#add-input").on('click', function(){
        $('#hidden-element-test').prepend('<input type="hidden" name="ipaddress" value="192.168.1.201" />');
        alert('Hideen Input Added.');
    });

    $("#add-textarea").on('click', function(){
        $('#hidden-element-test').prepend('<textarea name="instructions" style="display:none;">this is a test textarea</textarea>');
        alert('Hideen Textarea Added.');
    });

});
 

Vérifiez le travail jsfiddle ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X