2009-06-16 16 views
21

¿Cómo se crea un campo oculto en JavaScript en un formulario particular?Crear un campo oculto en JavaScript

<html> 
    <head> 
     <script type="text/javascript"> 
     var a =10; 
function test() { 
     if (a ==10) { 
     // ... Here i need to create some hidden field for form named = chells 
     } 
} 
     </script> 
    </head> 
    <body > 
     <form id="chells" name="formsdsd"> 
     <INPUT TYPE=BUTTON OnClick="test();"> 
    </form> 
    </body> 
    </html> 
+4

Desde y nuestra secuencia de comandos se ejecuta antes de que exista la forma; lo que desea es imposible. Podrías escribirlo en una función y asignarlo al evento onload. Su HTML también tiene algunos errores, vea http://validator.w3.org/ – Quentin

Respuesta

74
var input = document.createElement("input"); 

input.setAttribute("type", "hidden"); 

input.setAttribute("name", "name_you_want"); 

input.setAttribute("value", "value_you_want"); 

//append to form element that you want . 
document.getElementById("chells").appendChild(input); 
+1

La colección de formularios es más apropiada que getElementById para un formulario con nombre y todo esto depende del orden de ejecución de JS frente a la carga DOM, pero esencialmente esto es el enfoque correcto – annakata

+0

Pero solo trato de usar su dice que el elemento de formulario es nulo – joe

+0

Como David señaló, asegúrese de que está ejecutando esto * después * de que el DOM se haya cargado. Intenta usar el evento onload para principiantes. – annakata

17

Puede utilizar jQuery para crear elemento sobre la marcha

$('#form').append('<input type="hidden" name="fieldname" value="fieldvalue" />'); 

u otra manera

$('<input>').attr({ 
    type: 'hidden', 
    id: 'fieldId', 
    name: 'fieldname' 
}).appendTo('form') 
3

que he encontrado que esto funcione:

var element1 = document.createElement("input"); 
element1.type = "hidden"; 
element1.value = "10"; 
element1.name = "a"; 
document.getElementById("chells").appendChild(element1); 
Cuestiones relacionadas