javascript - getelementbyvalue - getElementsByName() no funciona?
getelementsbyname value (2)
Tengo una función de Javascript que debe actualizar un campo de entrada oculto en mi formulario con un número que se incrementa cada vez que se llama a la función.
Funcionó originalmente con getElementById (), sin embargo, debido a que tuve que rediseñar mi formulario, no puedo usar la función php para asignar una ID individual al elemento, así que todo lo que tengo es un nombre único para ese elemento.
Entonces, en su lugar, decidí usar getElementsByName () desde Javascript para modificar el elemento.
Aquí está el HTML de ese elemento
<input type="hidden" value="" name="staff_counter">
Este es mi código Javascript:
window.onload=function()
{
//function is activated by a form button
var staffbox = document.getElementsByName(''staff_counter'');
staffbox.value = s;
s++;
}
No recibo errores en Firebug cuando se llama a la función y el campo de entrada no recibe un valor.
Estaba trabajando con getElementById (), pero ¿por qué de repente no funciona con getElementsByName ()?
- -He comprobado que es el único elemento único en el documento.
- - Comprobé si había errores en Firebug al activar la función
Aquí está el código que uso de Codeigniter para hacer que el elemento
// staff_counter is name and the set_value function sets the value from what is
//posted so if the validation fails and the page is reloaded the form element does
// not lose its value
echo form_hidden(''staff_counter'', set_value(''staff_counter''));
Gracias
document.getElementsByName()
devuelve una matriz, por lo que debe acceder a ella mediante un índice: document.getElementsByName(''staff_counter'')[0]
(dependiendo de cuántos de estos tenga).
También tiene acceso a una propiedad de length
para verificar cuántos elementos coinciden.
Solo tuve un problema similar, lo resolví con un simple bucle sobre la matriz. El siguiente código pasará e inhabilitará todos los botones con el nombre ''btnSubmit''.
for (var i=0;i<document.getElementsByName(''btnSubmit'').length;i++){
document.getElementsByName(''btnSubmit'')[i].disabled=true;
}