Foros del Web » Programando para Internet » Javascript »

No funciona si no es IE

Estas en el tema de No funciona si no es IE en el foro de Javascript en Foros del Web. buena tengi una rutina de validacion que IE funciona ala perfeccion que consiste en no permitir campos vacios y en la validacion del correo electronico, ...
  #1 (permalink)  
Antiguo 25/04/2009, 10:26
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 15 años, 8 meses
Puntos: 2
Pregunta No funciona si no es IE

buena tengi una rutina de validacion que IE funciona ala perfeccion que consiste en no permitir campos vacios y en la validacion del correo electronico, sin emvado no funciona en otros exploradoes como google chrome o fire fox, alguna idea de por que no funcione....

si quieren ver la rutina diganme no la puse por que si es algo extansa.


P.S. soy un vil novato en este campo
  #2 (permalink)  
Antiguo 25/04/2009, 10:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: No funciona si no es IE

Hola:

Sin ver la rytina es como dar palos de ciego...

A bote pronto, supongo que tendrá que ver con la sintaxis que admite explorer, no-estandar... por ejemplo, campos con id="algo", se puede consultar algo.value, y en todos los normales debes usar document.getElementById("algo").value....

Lo mejor es que pongas el código, pero simplificado... y aún mejor, que averigues si en otros navehadores existe algún error consultando la consola de errores...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 25/04/2009, 10:40
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 15 años, 8 meses
Puntos: 2
Pregunta Respuesta: No funciona si no es IE

sip tienes rason pero a qui esta espero que me puedan ayudar, el primero que es el que ase la validacion y el segundo que simplemente le da forma, y los mando llamar de la siguiente forma:

Cita:
<link rel="stylesheet" type="text/css" href="validacion/messages.css" />
<script type="text/javascript" src="validacion/messages.js"></script>
Cita:
// form validation function //
function validate(form) {
var name = form.Nombre.value;
var email = form.CorreoElectronico.value;
var opc = form.Asunto.value;
var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
if(name == "") {
inlineMsg('Nombre','Ingresa tu nombre.',2);
return false;
}
if(!name.match(nameRegex)) {
inlineMsg('Nombre','Ingresaste un nombre inválido.',2);
return false;
}
if(email == "") {
inlineMsg('CorreoElectronico','<strong>Error</strong><br />Ingresa tu correo electrónico.',2);
return false;
}
if(!email.match(emailRegex)) {
inlineMsg('CorreoElectronico','<strong>Error</strong><br />Tu correo electrónico es inválido.',2);
return false;
}
if(opc == "") {
inlineMsg('Asunto','Este campo no puede estar vacio.',2);
return false;
}
if(!opc.match(nameRegex)) {
inlineMsg('Asunto','Ingresaste este texto es inválido.',2);
return false;
}
return true;
}

// START OF MESSAGE SCRIPT //

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide) {
var msg;
var msgcontent;
if(!document.getElementById('msg')) {
msg = document.createElement('div');
msg.id = 'msg';
msgcontent = document.createElement('div');
msgcontent.id = 'msgcontent';
document.body.appendChild(msg);
msg.appendChild(msgcontent);
msg.style.filter = 'alpha(opacity=0)';
msg.style.opacity = 0;
msg.alpha = 0;
} else {
msg = document.getElementById('msg');
msgcontent = document.getElementById('msgcontent');
}
msgcontent.innerHTML = string;
msg.style.display = 'block';
var msgheight = msg.offsetHeight;
var targetdiv = document.getElementById(target);
targetdiv.focus();
var targetheight = targetdiv.offsetHeight;
var targetwidth = targetdiv.offsetWidth;
var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
msg.style.top = topposition + 'px';
msg.style.left = leftposition + 'px';
clearInterval(msg.timer);
msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
if(!autohide) {
autohide = MSGHIDE;
}
window.setTimeout("hideMsg()", (autohide * 1000));
}

// hide the form alert //
function hideMsg(msg) {
var msg = document.getElementById('msg');
if(!msg.timer) {
msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
}
}

// face the message box //
function fadeMsg(flag) {
if(flag == null) {
flag = 1;
}
var msg = document.getElementById('msg');
var value;
if(flag == 1) {
value = msg.alpha + MSGSPEED;
} else {
value = msg.alpha - MSGSPEED;
}
msg.alpha = value;
msg.style.opacity = (value / 100);
msg.style.filter = 'alpha(opacity=' + value + ')';
if(value >= 99) {
clearInterval(msg.timer);
msg.timer = null;
} else if(value <= 1) {
msg.style.display = "none";
clearInterval(msg.timer);
}
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
var left = 0;
if(target.offsetParent) {
while(1) {
left += target.offsetLeft;
if(!target.offsetParent) {
break;
}
target = target.offsetParent;
}
} else if(target.x) {
left += target.x;
}
return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
var top = 0;
if(target.offsetParent) {
while(1) {
top += target.offsetTop;
if(!target.offsetParent) {
break;
}
target = target.offsetParent;
}
} else if(target.y) {
top += target.y;
}
return top;
}

// preload the arrow //
if(document.images) {
arrow = new Image(7,80);
arrow.src = "images/msg_arrow.gif";
}
Cita:
* {margin:0; padding:0}
body {font:12px Verdana, Arial, Helvetica, sans-serif; color:#666}
#wrapper {width:380px; margin:20px auto}
.form {float:left; padding:0 10px 10px 10px; background:#f3f3f3; border:2px solid #cfcfcf}
.form label {float:right; width:150px; padding:10px 10px 0 0; font-weight:none}
.form select {float:left; width:146px; margin-top:10px}
.form input {float:left; margin-top:10px; width: 180px;}
.form .submit {clear:both:}
#msg {display:none; position:absolute; z-index:200; background:url(images/msg_arrow.gif) left center no-repeat; padding-left:7px}
#msgcontent {display:block; background:#f3e6e6; border:2px solid #924949; border-left:none; padding:5px; min-width:150px; max-width:250px}
  #4 (permalink)  
Antiguo 26/04/2009, 11:47
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: No funciona si no es IE

e estado viendo lo que me dices de que tengo que cambiar la forma de recuperar los valores pero la verdad no lo entiendo
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 06:39.