Critica a mi primera implementacion JS

08/05/2006 - 23:32 por Daniel G. Samborski | Informe spam
Hola, he aplicado lo que he leido de javascript en una pequeña pagina.
Es un formulario de envio, y me gustaria recibir sus comentarios y criticas
al respecto.
Debo decir que FrontPage ayuda mucho en la creacion de muchas cosas, casi
automatiza todo.
Pero por lo demas lo he hecho implementando cosas que he ido leyendo en
distintos cursos.

Daniel.

********************** Copiar en un archivo HTM ***************************

<html>

<head>

<script language="Javascript">
<!--
/*
Funcion para seleccionar todo
*/

function SeleccionarTodo(theField) {
var tempval=eval("document."+theField)
tempval.focus()
tempval.select()
}
/*
Funcion para deshabilitar el ENTER en el formulario
*/
function DesabilitarEnter (field, event)
{
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which :
event.charCode;
if (keyCode == 13)
{
var i;
for (i = 0; i < field.form.elements.length; i++)
if (field == field.form.elements[i])
break;
i = (i + 1) % field.form.elements.length;
field.form.elements[i].focus();
return false;
}
else
return true;
}

/*
Funcion para validar el correo formato reconocible dato@dato.dato...
*/
function validaremail()
{

if(contacto.correo.value=="")
{
contacto.B1.disabled=true;
contacto.correo.style.color='#ffffff'
contacto.correo.style.backgroundColor='#ff0000'
return false;
}
// validar la cuenta de correo usando una expresión regular (RegExp)
if(contacto.correo.value.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig))
{
contacto.B1.disabled=true;
contacto.correo.style.color='#ffffff'
contacto.correo.style.backgroundColor='#ff0000'
return false;
}
return true;
}

//
function Llamar_JS()
{
eval(arguments[0]);
}

function Cambiar_Propiedad()
{
var args=arguments,d=document,i,j,id=args[0],o=Cambiar_Objeto(id),s,ao,v,x;
d.$cpe=new Array(); if(o) for(i=2; i<args.length; i+=2) { v=args[i+1];
s="o";
ao=args[i].split("."); for(j=0; j<ao.length; j++) { s+="."+ao[j];
if(null==eval(s)) {
s=null; break; } } x=new Object; x.o=o; x.n=new Array(); x.v=new Array();
x.n[x.n.length]=s; eval("x.v[x.v.length]="+s); d.$cpe[d.$cpe.length]=x;
if(s) eval(s+"=v"); }
}

function Cambiar_Objeto(id,o)
{
var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById)
el=o.getElementById(id);
else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return
el;
if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
for(n=0; n<c.length; n++) { el=Cambiar_Objeto(id,c[n]); if(el) return el; }
f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
for(m=0; m<els.length; m++){ el=Cambiar_Objeto(id,els[n]); if(el) return
el; } }
return null;
}

function Restaurar_Predeterminado()
{
var d=document,x; if(d.$cpe) { for(i=0; i<d.$cpe.length; i++) {
x=d.$cpe[i];
if(x.v=="") x.v=""; eval("x."+x.n+"=x.v"); } d.$cpe=null; }
}
</script>

<title>Coleccion de JavaScript</title>
<meta name="Microsoft Theme" content="clase-coleccion-javascript 1111,
default">
<meta name="Microsoft Border" content="b">
</head>

<body>
<table border="0" width="100%" id="table1" cellspacing="0" cellpadding="0">
<tr>
<td>
<table border="0" width="600" id="table3" cellspacing="0" cellpadding="0">
<tr>
<td width="600" height="143"
background="_themes/clase-coleccion-javascript/titulo.gif">
<p align="center"><font size="4">Formulario de contacto</font></td>
</tr>
<tr>
<td>
<form Enctype="text/plain" name="contacto" method="POST"
action="mailto:danielgsamborski@gmail.com" return false;">

<table border="0" width="500" id="table4" cellspacing="0"
cellpadding="0" onmouseover="activar();">
<tr>
<td align="right">&nbsp;</td>
<td width="336">&nbsp;</td>
</tr>
<tr>
<td align="right"><b>Nombre: </b></td>
<td width="336">&nbsp;<input onkeypress="return
DesabilitarEnter(this, event)" type="text" name="nombre" size="44"
value="Aquí tu nombre"
onclick="Llamar_JS('contacto.nombre.select()');";></td>
</tr>
<tr>
<td align="right"><b>Correo: </b></td>
<td width="336">&nbsp;<input onkeypress="return
DesabilitarEnter(this, event)" type="text" name="correo" size="44"
value="¿Cual es tu correo?"
onclick="Llamar_JS('contacto.correo.select()')"></td>
</tr>
<tr>
<td align="right"><b>Tipo de mensaje: </b></td>
<td width="336">&nbsp;<select onkeypress="return
DesabilitarEnter(this, event)" size="1" name="tipomensaje">
<option selected>Tengo una consulta</option>
<option>Me gustaría sugerir</option>
<option>Te envío este código</option>
</select></td>
</tr>
<tr>
<td align="right" valign="top"><b>Mensaje:&nbsp; </b>
<p>&nbsp;</td>
<td width="336">&nbsp;<textarea
onfocus="Llamar_JS('contacto.mensaje.select()')" onkeypress="return
DesabilitarEnter(this, event)" rows="12" name="mensaje" cols="43"
onclick="Llamar_JS('contacto.mensaje.select()')">aquí escribe lo que deseas
enviar o solicitar:

Tengo una consulta: Para realizar una pregunta especifica.

Me gustaría sugerir: Para realizar todo tipo de sugerencias.

Te envío este código: Si tenes un script que compartir con todos,
envíalo.</textarea></td>
</tr>
</table>
<p align="center">
<input type="submit" value="Enviar" name="B1"
onmouseout="Restaurar_Predeterminado();" onmouseover="control()">
<input type="reset" value="Restablecer" name="B2"
onclick="desacer_todo();"></p>
</form>
<p>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>

<script language=javascript>
function control()
{

// Valida el campo nombre.
if(contacto.nombre.value=='')
{
desactivar("nombre");
return true;
}
else
Restaurar_Predeterminado();

if(contacto.nombre.value=='Aquí tu nombre')
{
desactivar("nombre");
return true;
}
else
Restaurar_Predeterminado();

// Fin validacion campo nombre //

// Valida si la direccion de correo ingresada es correcta.
if (validaremail())
{
contacto.B1.disabled=false;
contacto.correo.style.color='#000000';
contacto.correo.style.backgroundColor='#ffffff';
}

// Fin validacion del campo de correo //

// Valida el area de texto.
if(contacto.mensaje.value=='')
{
desactivar("mensaje");
return true;
}
else
Restaurar_Predeterminado();

// Fin validacion del area de texto //
}

function desactivar(tipo)
{
contacto.B1.disabled=true;
Cambiar_Propiedad(/*id*/tipo,1,'style.color','#FFFFFF','style.backgroundColor','#FF0000');}function activar(){ contacto.B1.disabled=false;}function desacer_todo(){ contacto.B1.disabled=false; contacto.nombre.style.color='#000000' contacto.nombre.style.backgroundColor='#ffffff' contacto.correo.style.color='#000000' contacto.correo.style.backgroundColor='#ffffff' contacto.mensaje.style.color='#000000' contacto.mensaje.style.backgroundColor='#ffffff'}</script></body></html>

Preguntas similare

Leer las respuestas

#1 oR
09/05/2006 - 04:21 | Informe spam
Hola Daniel,

No soy el mas adecuado para opinar sobre esto, pero el mensaje que
genera tu formulario no deberia incluir lo que se lleno en el? ...
si es asi no lo hace o al menos no logro hacerlo funcionar, mi
malentendimiento del tema quiza,

Algo como este,

<html>
<head>
</head>
<body>

<script>
function now()
{
var thebody=document.testform.thebody.value;
window.location.href="mailto:?subject=Mail
Test&body=" +
escape(thebody);
}
</script>

<form name=testform>
<input type=button value="click me" onclick="now()">
<textarea name=thebody>
Esto deberia ir en el cuerpo del mensaje.
</textarea>
</form>

</body>
</html>


Saludos


"Daniel G. Samborski"
escribió en el mensaje
news:
| Hola, he aplicado lo que he leido de javascript en una pequeña
pagina.
| Es un formulario de envio, y me gustaria recibir sus comentarios
y criticas
| al respecto.
| Debo decir que FrontPage ayuda mucho en la creacion de muchas
cosas, casi
| automatiza todo.
| Pero por lo demas lo he hecho implementando cosas que he ido
leyendo en
| distintos cursos.
|
| Daniel.
|
| ********************** Copiar en un archivo HTM
***************************
|
[...]
Respuesta Responder a este mensaje
#2 Daniel G. Samborski
09/05/2006 - 06:10 | Informe spam
Hola, gracias por la sugerencia.

Busque info mas detallada sobre mailto y agregue una funcion mas, el
problema es que no se el motivo, pero en Internet Explorer no logro que la
variable que le paso muestre el subject minetras que en Firefox y Opera si
lo muestra...

**** copiar en HTML ****

<html>

<head>

<script language="Javascript">
<!--
/*
Funcion para seleccionar todo
*/

function selectAll(theField) {
var tempval=eval("document."+theField)
tempval.focus()
tempval.select()
}
/*
Funcion para desabilitar el ENTER en el formulario
*/
function handleEnter (field, event)
{
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which :
event.charCode;
if (keyCode == 13)
{
var i;
for (i = 0; i < field.form.elements.length; i++)
if (field == field.form.elements[i])
break;
i = (i + 1) % field.form.elements.length;
field.form.elements[i].focus();
return false;
}
else
return true;
}

/*
Funcion para validar el correo formato reconocible
*/
function validaremail()
{

if(contacto.correo.value=="")
{
contacto.B1.disabled=true;
contacto.correo.style.color='#ffffff'
contacto.correo.style.backgroundColor='#ff0000'
return false;
}
// validar la cuenta de correo usando una expresión regular (RegExp)
if(contacto.correo.value.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig))
{
contacto.B1.disabled=true;
contacto.correo.style.color='#ffffff'
contacto.correo.style.backgroundColor='#ff0000'
return false;
}
return true;
}

function EnviaMail() {
var to = "";
var cc = "";
var bcc = "";
var subject = contacto.tipomensaje.value;

var body = contacto.mensaje.value;

var doc = "mailto:" + to +
"?cc=" + cc +
"&bcc=" + bcc +
"&subject=" + subject +
"&body=" + body;

window.location = doc;
}

//
function FP_callJS() {//v1.0
eval(arguments[0]);
}

function FP_changeProp() {//v1.0
var
args=arguments,d=document,i,j,id=args[0],o=FP_getObjectByID(id),s,ao,v,x;
d.$cpe=new Array(); if(o) for(i=2; i<args.length; i+=2) { v=args[i+1];
s="o";
ao=args[i].split("."); for(j=0; j<ao.length; j++) { s+="."+ao[j];
if(null==eval(s)) {
s=null; break; } } x=new Object; x.o=o; x.n=new Array(); x.v=new Array();
x.n[x.n.length]=s; eval("x.v[x.v.length]="+s); d.$cpe[d.$cpe.length]=x;
if(s) eval(s+"=v"); }
}

function FP_getObjectByID(id,o) {//v1.0
var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById)
el=o.getElementById(id);
else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return
el;
if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return
el; }
f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return
el; } }
return null;
}

function FP_changePropRestore() {//v1.0
var d=document,x; if(d.$cpe) { for(i=0; i<d.$cpe.length; i++) {
x=d.$cpe[i];
if(x.v=="") x.v=""; eval("x."+x.n+"=x.v"); } d.$cpe=null; }
}
</script>

<title>Coleccion de JavaScript</title>
<meta name="Microsoft Theme" content="clase-coleccion-javascript 1111,
default">
<meta name="Microsoft Border" content="b">
</head>

<body>
<table border="0" width="100%" id="table1" cellspacing="0" cellpadding="0">
<tr>
<td>
<table border="0" width="600" id="table3" cellspacing="0" cellpadding="0">
<tr>
<td width="600" height="143"
background="_themes/clase-coleccion-javascript/titulo.gif">
<p align="center"><font size="4">Formulario de contacto</font></td>
</tr>
<tr>
<td>
<form Enctype="text/plain" name="contacto" method="POST"
action="javascript:EnviaMail();" >

<table border="0" width="500" id="table4" cellspacing="0"
cellpadding="0" onmouseover="activar();">
<tr>
<td align="right">&nbsp;</td>
<td width="336">&nbsp;</td>
</tr>
<tr>
<td align="right"><b>Nombre: </b></td>
<td width="336">&nbsp;<input onkeypress="return handleEnter(this,
event)" type="text" name="nombre" size="44" value="Aquí tu nombre"
onclick="FP_callJS('contacto.nombre.select()');";></td>
</tr>
<tr>
<td align="right"><b>Correo: </b></td>
<td width="336">&nbsp;<input onkeypress="return handleEnter(this,
event)" type="text" name="correo" size="44" value="¿Cual es tu correo?"
onclick="FP_callJS('contacto.correo.select()')"></td>
</tr>
<tr>
<td align="right"><b>Tipo de mensaje: </b></td>
<td width="336">&nbsp;<select onkeypress="return handleEnter(this,
event)" size="1" name="tipomensaje">
<option selected>Tengo una consulta</option>
<option>Me gustaría sugerir</option>
<option>Te envío este código</option>
</select></td>
</tr>
<tr>
<td align="right" valign="top"><b>Mensaje:&nbsp; </b>
<p>&nbsp;</td>
<td width="336">&nbsp;<textarea
onfocus="FP_callJS('contacto.mensaje.select()')" onkeypress="return
handleEnter(this, event)" rows="12" name="mensaje" cols="43"
onclick="FP_callJS('contacto.mensaje.select()')">aquí escribe lo que deseas
enviar o solicitar:

Tengo una consulta: Para realizar una pregunta especifica.

Me gustaría sugerir: Para realizar todo tipo de sugerencias.

Te envío este código: Si tenes un script que compartir con todos,
envíalo.</textarea></td>
</tr>
</table>
<p align="center">
<input type="submit" name="B1" value="Enviar"
onmouseout="FP_changePropRestore();" onmouseover="control()">
<input type="reset" value="Restablecer" name="B2"
onclick="desacer_todo();"></p>
</form>
<p>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>

<script language=javascript>
function control()
{

// Valida el campo nombre.
if(contacto.nombre.value=='')
{
desactivar("nombre");
return true;
}
else
FP_changePropRestore();

if(contacto.nombre.value=='Aquí tu nombre')
{
desactivar("nombre");
return true;
}
else
FP_changePropRestore();

// Fin validacion campo nombre //

// Valida si la direccion de correo ingresada es correcta.
if (validaremail())
{
contacto.B1.disabled=false;
contacto.correo.style.color='#000000';
contacto.correo.style.backgroundColor='#ffffff';
}

// Fin validacion del campo de correo //

// Valida el area de texto.
if(contacto.mensaje.value=='')
{
desactivar("mensaje");
return true;
}
else
FP_changePropRestore();

// Fin validacion del area de texto //
}

function desactivar(tipo)
{
contacto.B1.disabled=true;
FP_changeProp(/*id*/tipo,1,'style.color','#FFFFFF','style.backgroundColor','#FF0000');}function activar(){ contacto.B1.disabled=false;}function desacer_todo(){ contacto.B1.disabled=false; contacto.nombre.style.color='#000000' contacto.nombre.style.backgroundColor='#ffffff' contacto.correo.style.color='#000000' contacto.correo.style.backgroundColor='#ffffff' contacto.mensaje.style.color='#000000' contacto.mensaje.style.backgroundColor='#ffffff'}</script></body></html>"oR" escribió en el mensajenews:e3ov88$4oe$ Hola Daniel,>> No soy el mas adecuado para opinar sobre esto, pero el mensaje que> genera tu formulario no deberia incluir lo que se lleno en el? ...> si es asi no lo hace o al menos no logro hacerlo funcionar, mi> malentendimiento del tema quiza,>> Algo como este,>> --> <html>> <head>> </head>> <body>>> <script>> function now()> {> var thebody=document.testform.thebody.value;> window.location.href="mailto:?subject=Mail> Test&body=" +> escape(thebody);> }> </script>>> <form name=testform>> <input type=button value="click me" onclick="now()">> <textarea name=thebody>> Esto deberia ir en el cuerpo del mensaje.> </textarea>> </form>>> </body>> </html>>> -->> --> Saludos>>> "Daniel G. Samborski" escribió en el mensaje> news: | Hola, he aplicado lo que he leido de javascript en una pequeña> pagina.> | Es un formulario de envio, y me gustaria recibir sus comentarios> y criticas> | al respecto.> | Debo decir que FrontPage ayuda mucho en la creacion de muchas> cosas, casi> | automatiza todo.> | Pero por lo demas lo he hecho implementando cosas que he ido> leyendo en> | distintos cursos.> |> | Daniel.> |> | ********************** Copiar en un archivo HTM> ***************************> |> [...]>>
Respuesta Responder a este mensaje
#3 oR
09/05/2006 - 17:54 | Informe spam
Hola,

Si pues, el subject funciona en FF y no en IE, ni idea del por
que, te dejo este otro a ver si te da alguna pista,

-
<html>
<head>

<script>
function doIt()
{
var S=document.exf2.subject.value;
var B=document.exf2.body.value;
self.location="mailto:?subject="+S+"&body="+B;
}
</script>

</head>

<body>

<form name=exf2>
ASUNTO:<input type=text name=subject value="pon el asunto"><BR>
MENSAJE:<input type=text name=body value="pon tu mensaje"><BR>
<input type=button value="ENVIAR" onclick="doIt()">
</form>

</body>
</html>




Saludos


"Daniel G. Samborski"
escribió en el mensaje
news:
| Hola, gracias por la sugerencia.
Respuesta Responder a este mensaje
#4 Daniel G. Samborski
09/05/2006 - 18:51 | Informe spam
Es extraño, no logro que con el IE tome parametros de una variable en el
subject, pero con los demas exploradores no hay problema...
Incluso probe tomar el valor por el indice.

var indice= document.contacto.tipomensaje.selectedIndex;
var subject = document.contacto.tipomensaje.options[indice].value;

Y sigue igual.

Si le coloco un string fijo lo toma, pero solo el string.

var subject = documetn.contacto.tipomensaje.value
// En el subjet no muestra nada

var subject = "'"+document.contacto.tipomensaje.value+"'"
// En el subjet muestra '' pero no el contenido de la variable.


Daiel.

"oR" escribió en el mensaje
news:e3qdve$dbq$
Hola,

Si pues, el subject funciona en FF y no en IE, ni idea del por
que, te dejo este otro a ver si te da alguna pista,

-
<html>
<head>

<script>
function doIt()
{
var S=document.exf2.subject.value;
var B=document.exf2.body.value;
self.location="mailto:?subject="+S+"&body="+B;
}
</script>

</head>

<body>

<form name=exf2>
ASUNTO:<input type=text name=subject value="pon el asunto"><BR>
MENSAJE:<input type=text name=body value="pon tu mensaje"><BR>
<input type=button value="ENVIAR" onclick="doIt()">
</form>

</body>
</html>




Saludos


"Daniel G. Samborski"
escribió en el mensaje
news:
| Hola, gracias por la sugerencia.


Respuesta Responder a este mensaje
#5 oR
09/05/2006 - 19:44 | Informe spam
Hola Daniel,

Como ya este no es tema del foro y ademas me esta saliendo humo de
la cabeza :) te recomiendo postees tus dudas tambien en
microsoft.public.es.asp o en,
http://www.forosdelweb.com/forumdis...eba5&f

or.news.disabled=true

Saludos


"Daniel G. Samborski"
escribió en el mensaje
news:
| Es extraño, no logro que con el IE tome parametros de una
variable en el
| subject, pero con los demas exploradores no hay problema...
| Incluso probe tomar el valor por el indice.
|
| var indice= document.contacto.tipomensaje.selectedIndex;
| var subject =
document.contacto.tipomensaje.options[indice].value;
|
| Y sigue igual.
|
[...]
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida