Foros del Web » Programando para Internet » Javascript »

Recoger valor de onChange

Estas en el tema de Recoger valor de onChange en el foro de Javascript en Foros del Web. Tego el siguiente formulario: <form method="post" action="pagina.asp"> <input type="file" NAME=File1 SIZE=100 onChange="document.imagen.src='file:///' + this.value"> </form> Vista previa:<br><br> <img src="../imagenes/spacer.gif" name="imagen"> <script language="javascript"> var elegida = ...
  #1 (permalink)  
Antiguo 27/12/2004, 10:41
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años
Puntos: 0
Recoger valor de onChange

Tego el siguiente formulario:
<form method="post" action="pagina.asp">
<input type="file" NAME=File1 SIZE=100 onChange="document.imagen.src='file:///' + this.value">
</form>
Vista previa:<br><br>
<img src="../imagenes/spacer.gif" name="imagen">


<script language="javascript">
var elegida = document.imagen.src;
document.write(elegida);
</script>


De esta forma me muestra como valor de var elegida=http://127.0.0.1/web/imagenes/spacer.gif
Yo quisiera recoger como valor de la variable var elegida la que se produce con el evento onchange en el input
¿sabeis como podria hacerlo?
Me refiero previamente a enviar el formulario!!
  #2 (permalink)  
Antiguo 27/12/2004, 20:58
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 22 años, 6 meses
Puntos: 2
Me parece que el input file no acepta el evento onchange:

http://www.w3schools.com/htmldom/dom_obj_fileupload.asp
__________________
JmN
  #3 (permalink)  
Antiguo 28/12/2004, 01:56
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años
Puntos: 0
Si acepta el evento onchange, prueba el codigo que he enviado!.
Nadie sabe resolver mi duda??
  #4 (permalink)  
Antiguo 28/12/2004, 07:59
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
El otro día anduve peleando con lo mismo y me dí por vencida, pues sólo funcionaba en explorer.

onchange en un input de tipo file funciona en explorer, pero no en el resto de navegadores.

Si lo que quieres es saber el nuevo valor de la variable elegida conteniendo el nuevo src de tu imagen debes volver a realizar la asignación de nuevo. No puedes usar un document.write pues perderías el resto de código de tu página. Lo más simple es que le pidas directamente el src de la imagen

en todo caso prueba con

<input type="file" NAME=File1 SIZE=100 onChange="document.imagen.src='file:///' + this.value;alert(document.imagen.src)">
  #5 (permalink)  
Antiguo 30/12/2004, 01:47
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años
Puntos: 0
Tunait, gracias por tu ayuda,creo que no necesito usar ;alert(document.imagen.src) , porque puedo ver ese valor en el input directamente, cuando he selecionado el archivo.
Te comento, lo que yo quiero es forzar a que el archivo que se seleciona en el input se llame de una forma determinada, por ejemplo fotografia55.jpg y no fotografia66.jpg por ejemplo.
Para eso necesito recoger el valor que se ha introducido en el input en una variable para poder compararlo con el que deberia de ser.
Seguire intentandolo, si lo consigo lo pondre aqui.
Felices Fiestas
  #6 (permalink)  
Antiguo 30/12/2004, 04:15
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años
Puntos: 0
Tunait piensas que haciendo uso del evento onblur, podria recoger el nuevo valor, yo creo que de esa forma ha de ser posible, pero no se como hacerlo. Mis conocimientos de javascript no son muy amplios!!.
  #7 (permalink)  
Antiguo 30/12/2004, 04:48
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola sqa212

bueno, prueba con una función parecida a esto

function comprueba(valor){
valor = valor.split("\")
if (valor[valor.length-1] != "fotografia55.jpg"){
alert('no es esa!')
}
}

y al campo de archivo le pones un onblur="comprueba(this.value)"

Pero eso sólo lanzará la alerta, pero no impedirá que se envíe el form y se uplodée el archivo.

Te sugiero que sobre la función agregues una variable

var enviar = false

y que la función cambie ese valor si el nombre de archivo es correcto

function comprueba(valor){
valor = valor.split("\")
if (valor[valor.length-1] != "fotografia55.jpg"){
alert('no es esa!')
}
else{enviar = true}
}

Y a tu form le pongas algo como ....

<form method="post" onsubmit="if(enviar){return true}else{alert('que te digo que no es esa!');return false}" >

prueba a ver ...
  #8 (permalink)  
Antiguo 30/12/2004, 05:42
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años
Puntos: 0
Perdona tunait, pero es que he empezado a intentar poner el codigo que me has facilitado y en el dreamweaver me aparece de un color distinto la parte que te pongo aqui abajo, eso creo que es debido a que hay algo que no esta bien en el codigo creo, he probado a poner: { y () tras valor = valor.split("\")
, pero sigue igual, no se si realmente esta bien como tu lo has puesto, te importaria confirmarmelo.
<script language="javascript">
function comprueba(valor){
valor = valor.split("\")
if (valor[valor.length-1] != "fotografia55.jpg"){
alert('no es esa!')
}
}
</script>
  #9 (permalink)  
Antiguo 30/12/2004, 05:44
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
oño ... debe de ser que lo interpreta como el caracter de escape.... prueba así

valor = valor.split("\\")
  #10 (permalink)  
Antiguo 30/12/2004, 06:01
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años
Puntos: 0
De esa manera lo interpreta correctamente
Voy a seguir con el resto y te comento.
Gracias de Nuevo
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 05:31.