Foros del Web » Programando para Internet » Javascript »

asignar onchange desde javascript

Estas en el tema de asignar onchange desde javascript en el foro de Javascript en Foros del Web. estoy creando unos campos dinamicamente con javascript y al crearlos puedo hacer esto nCampo = document.createElement('input'); nCampo.name = 'archivos[]'; nCampo.type = 'file'; pero quiero añadir ...
  #1 (permalink)  
Antiguo 30/03/2011, 14:05
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
asignar onchange desde javascript

estoy creando unos campos dinamicamente con javascript
y al crearlos puedo hacer esto

nCampo = document.createElement('input');
nCampo.name = 'archivos[]';
nCampo.type = 'file';

pero quiero añadir esto y no puedo

nCampo.onChange="javascript:anyadirCampo()";

lo estoy haciendo mal, no se puede hacer...?
  #2 (permalink)  
Antiguo 30/03/2011, 14:30
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: asignar onchange desde javascript

el problema es que a un input file no se le puede asignar ningún evento
  #3 (permalink)  
Antiguo 30/03/2011, 15:18
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
Respuesta: asignar onchange desde javascript

creo el campo a mano se le asigna y funciona...
  #4 (permalink)  
Antiguo 30/03/2011, 15:23
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: asignar onchange desde javascript

y si no le asignas el evento también funciona
Cita:
<input type="file" name="f" />
cual es el objeto de asignarle esa función??
  #5 (permalink)  
Antiguo 30/03/2011, 15:40
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
Respuesta: asignar onchange desde javascript

porque es un campo para subir archivos y cada vez que añadas un archivo se añadirá un campo automáticamente con javascript el primer campo funciona, que es el que creo a mano, y al elegir un archivo se crea el segundo, pero al elegir el segundo archivo no hace nada y en el html no aparece el evento onchange
  #6 (permalink)  
Antiguo 30/03/2011, 16:08
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: asignar onchange desde javascript

bien, puedes clonar el campo con cloneNode() o puedes modificar el dom.

Cita:
var file = document.createElement('input');
file.setAttribute('type','file');
document.getElementById('contenedor').appendChild( file);
Cita:
var f = document.getElementById('campo a clonar');
var file = f.cloneNode(true);
document.getElementById('contenedor').appendChild( file)
en cualquiera de los dos caso, si lo haces bien, funcionará
  #7 (permalink)  
Antiguo 30/03/2011, 16:53
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
Respuesta: asignar onchange desde javascript

gracias por la respuesta, aunque le he encontrado al final por mi cuenta

al final lo que he usado es esto

nCampo.setAttribute("onChange","javascript:editado ();");

creo que tu primera respuesta va por el mismo sitio
  #8 (permalink)  
Antiguo 30/03/2011, 17:28
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: asignar onchange desde javascript

me alegra que lo hayas logrado. solo para futuras lecturas. qué código se ejecuta al invocar la función??
probablemente soy yo, que estoy cansada o me he perdido en el tema, pero no llego a entenderlo
Cita:
var file = document.createElement('input');
file.setAttribute('type','file');
file.onchange = function(){fnc();}
document.getElementById('contenedor').appendChild( file);

function fnc() {
alert('funciona') // funciona, para que??
}
pero si a ti te vale, por mí está bien

Última edición por IsaBelM; 30/03/2011 a las 18:01
  #9 (permalink)  
Antiguo 30/03/2011, 17:36
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
Respuesta: asignar onchange desde javascript

a ver si me explico mira paso el ejemplo completo

la explicación es que tengo un campo file en el cual al añadir un archivo se crea otro campo file debajo

ahora ya se preocupa en comprobar si el campo está vacio o ya tenia algo para que no añada otro campo
lo del iframe es para cosas mías que aun están a medias no afecta en nada


este es el div donde está el primer input

<div id="adjuntos">

<div class="archivo" id="file0">
<form name="formu" enctype="multipart/form-data" id="formu0" action="cargador.php" method="post" target="iframeUpload0">
<input type="file" name="archivos[]" onChange="editado(0);"/><br />
<iframe name="iframeUpload0"></iframe>
</form>
</div>
</div>

y este el javascrip
var numero = 0;
var controlador=new Array();
controlador[0]=0;
function editado(variable){
if(controlador[variable]==0){
controlador[variable]=1;
addCampo();
alert("entra");
}else{
alert("no entra");
}
}
function addCampo() {
nDiv = document.createElement('div');
nDiv.className = 'archivo';
nDiv.id = 'file' + (++numero);
//creamos el input para el formulario:
nCampo = document.createElement('input');
nCampo.name = 'archivos[]';
nCampo.type = 'file';
nCampo.setAttribute("onChange","javascript:editado ("+numero+");");

nIframe = document.createElement('iframe');
nIframe.name = 'iframeUpload[]';

a = document.createElement('a');
a.name = nDiv.id;
a.href = '#';
a.onclick = elimCamp;
a.innerHTML = 'Eliminar';
nDiv.appendChild(nCampo);
nDiv.appendChild(a);
nDiv.appendChild(nIframe);
container = document.getElementById('adjuntos');
container.appendChild(nDiv);
controlador[numero]=0;

}
  #10 (permalink)  
Antiguo 30/03/2011, 17:56
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: asignar onchange desde javascript

ahora he entendido. échale un vistazo a este tema, te puede resultar interesante
  #11 (permalink)  
Antiguo 30/03/2011, 18:00
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
Respuesta: asignar onchange desde javascript

thx, voy a echarle un vistazo

Etiquetas: onchange
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:41.