2010-03-09 10 views

Respuesta

493
$('<input>').attr('type','hidden').appendTo('form'); 

para responder a su segunda pregunta:

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

¿Es posible agregar atributos de identificación y nombre sobre la marcha ??????? –

+0

gracias David –

+51

Tenga en cuenta que IE se ahogará si intenta cambiar el tipo de entrada después de que se ha creado. Use '$ (''). Foo (...)' como solución alternativa. –

104
$('#myformelement').append('<input type="hidden" name="myfieldname" value="myvalue" />'); 
+1

¿Alguien probar esta respuesta en edad IE? –

+7

Personalmente, creo que este es un enfoque mucho mejor que la respuesta aceptada ya que implica menos llamadas de manipulación/función DOM. – PaulSkinner

+2

@PaulSkinner Para el caso dado, sí, estás en lo correcto, pero no siempre es así. Eche un vistazo aquí http://stackoverflow.com/a/2690367/1067465 –

17

si desea añadir más atributos como acaba de hacer:

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

O

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

esto está dando error de consola 'Identificador inesperado'. –

1

Trabajo JSFIDDLE

Si su forma es como

<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> 

Puede agregar entrada oculta y área de texto para formar como esto

$(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.'); 
    }); 

}); 

Comprobar trabajar jsfiddle aquí

2
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'); 
+0

¿Qué es '' name-as-seen-at-the-server''? – SaAtomic

10

Al igual que David, pero sin attr()

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

¿Hay algún nombre para esta forma de rellenar una etiqueta? – DLF85

Cuestiones relacionadas