Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2006, 09:30
aprendiz25
 
Fecha de Ingreso: marzo-2006
Mensajes: 4
Antigüedad: 18 años, 1 mes
Puntos: 0
Elemento "this". ¿Qué es?

Hola foreros/as!

He buscado información sobre este tema pero no he encontrado nada. Tampoco en los hilos de este foro.

Realmente no tengo claro que es el elemento this. Me explico:

Yo tengo un html y un js tal que así:

prueba.HTML
<html>
<head>
<SCRIPT LANGUAGE="JavaScript" SRC="form1.js"></SCRIPT>
<center><b>FORMULARIO PARA VALIDACIÓN DE DATOS</b></center><p>
</head>

<form name="form1" method="post">

<b>CUENTA DE CORREO:</b><p>

Correo E: <input type="text9" name="9" id="9" onBlur="validar_datos(this);"><p>

<input type="submit" value="Validar datos"><p><p>

</form>

</html>

form1.js
function validar_datos(campo_form)
{
if (campo_form.value.indexOf('@', 0) == -1 || campo_form.value.indexOf('.', 0) == -1)
{
alert("Dirección de e-mail con formato inválido");
campo_form.focus();
return false;
}
return true;
}


Esto funciona correctamente. El problema es cuando pongo un js intermedio entre prueba.html y form1.js. Como no sé qué es "this" no sé que pasarle desde HTML a la función. Ejemplo:


prueba.HTML
<html>
<head>
<SCRIPT LANGUAGE="JavaScript" SRC="form1.js"></SCRIPT>
<center><b>FORMULARIO PARA VALIDACIÓN DE DATOS</b></center><p>
</head>

<form name="form1" method="post" onSubmit="validar_datos(this);>

<b>CUENTA DE CORREO:</b><p>

Correo E: <input type="text9" name="9" id="9"><p>

<input type="submit" value="Validar datos"><p><p>

</form>

</html>

form1.js

document.write("<script type='text/javascript' src='js.js'></script>");

function validar_datos(campo)
{
comprobar_correo(campo);
}

js.js
function comprobar_correo(campo_form)
{
if (campo_form.value.indexOf('@', 0) == -1 || campo_form.value.indexOf('.', 0) == -1)
{
alert("Dirección de e-mail con formato inválido");
campo_form.focus();
return false;
}
return true;
}


Obviamente, en la línea<form name="form1" method="post" onSubmit="validar_datos(this);>, en el this le paso un argumento en blanco mientras que si se lo paso cuando activo un evento en el objeto (como en el primer caso) todo sin problemas.

Alguna sugerencia? Ya casi casi lo tengo pero estoy muy perdido.

Muchas gracias.