Foros del Web » Programando para Internet » Javascript »

errores en netscape

Estas en el tema de errores en netscape en el foro de Javascript en Foros del Web. pro que este tipo de instrucciones no fucnionan en netscape y si en explorer : <SCRIPT LANGUAGE="JavaScript"> function validatras() { nombre=formtras.dom.value if (nombre==""){ window.alert("Introduzca Nombre ...
  #1 (permalink)  
Antiguo 03/09/2004, 03:39
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
errores en netscape

pro que este tipo de instrucciones no fucnionan en netscape y si en explorer :
<SCRIPT LANGUAGE="JavaScript">
function validatras()
{
nombre=formtras.dom.value
if (nombre==""){
window.alert("Introduzca Nombre de dominio a Transpasar");
}
else if(formtras.net.checked == false & formtras.org.checked == false & formtras.com.checked == false){
window.alert ("Seleccione una extension");
}//fin del if
else{
formtras.submit();
}
}
</script>
.....
...
<input type="button" name="Submit" value="Siguiente" class="campos" onclick="validatras()">

como podia solventar este error?¿

Un Saludo y gracas
  #2 (permalink)  
Antiguo 03/09/2004, 03:51
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 8 meses
Puntos: 63
Hola

Bueno, independientemente de lo que tengas en el html, y suponiendo que todos los nombres, id's y demás son correctos, prueba estos cambios...

Código:
<script type="text/javascript">
function validatras() {
	nombre = formtras.dom.value;
		if (nombre == "") {
			window.alert("Introduzca Nombre de dominio a Transpasar");
		} else {
			if ((formtras.net.checked == false) && (formtras.org.checked == false) && (formtras.com.checked == false)) {
				alert ("Seleccione una extension");
			} else {
				formtras.submit();
			}
		}
}
</script>
Por cierto que en la validación de los formtras, yo pondría los false entre comillas.

Suerte

Felicidad
__________________
¡ hey, hou, hou, hey !
  #3 (permalink)  
Antiguo 03/09/2004, 04:05
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
ok lo probare por la tarde y te cuento

Gracias
  #4 (permalink)  
Antiguo 03/09/2004, 04:42
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Yo cambiaría en el script

formtras

por

document.forms["formtras"]

A ver si así...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 03/09/2004, 07:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola a todos:

La forma de tratar el formulario es mejor usando la nota de KarlanKas... de manera genérica:
document.forms["nombre_del_formulario"]["nombre_del_checkbox"].checked;

Luego el uso de los comparadores es correcta la forma que apunta PatomaS, aunque discrepo con entrecomillar un false, ya que significaría una variable de tipo cadena y no lógica...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 03/09/2004, 08:29
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 8 meses
Puntos: 63
Hola

Ciertamente la mejor manera es un document.forms... o mediante un getElementById.

Sería un cambio más grande a tu script que lo que yo hice, pero es lo más adecuado.

Luego mi comentario de las comillas, debe ser que aun las tengo en la mente traumatizado de que en este sistema no puedo poner las comillas españolas y llevo todo el día intentándolo y con eso y otras prueba sando un poco distraido...



Así que olvida lo que dije, caricatos tiene toda la razón.

Y finalmente, menos mal que pasaron por el post los que saben... si no...

;)

Felicidad
__________________
¡ hey, hou, hou, hey !
  #7 (permalink)  
Antiguo 05/09/2004, 12:37
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
Hola gracias a los tres pro responder use document.forms["formtras"] y me funciono perfectamente pero ahora me encuentro con otro problema que no se solventar, ya que en Ie funciona bien pero en nestcape es pronerlo ydeja de funcionar el scriprt el trozo de codigo que me esta dando problemas es :
long=ema.length;
var a=0;
for(x=0;x<long;x++){
if(ema.charAt(x)=='@'){
a=1;
}
}

Que puedo hacer con esto?¿

Un Saludo y mil gracias
  #8 (permalink)  
Antiguo 05/09/2004, 16:56
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
Nadie sabe como?¿

Un Saludo
  #9 (permalink)  
Antiguo 06/09/2004, 00:11
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Cómo toma valor ema y long?

Si ema es un valor de un campo del formulario recuerda que debe tomar el valor como hemos dicho:

ema=document.forms["formtras"].ema.value;
long=ema.length;
Veo que es un comprobador de email introducido. Te sugiero para mayor seguridad compruebes si tiene la arroba después del primer caracter y antes de los 4 últimos ya que una dirección de correo ni empieza por arroba ni termina con ella. Es más, la extensión más pequeña es de 2 caracteres y antes está el punto. Por lo que la arroba tiene que estar por lo menos antes de los 4 últimos caracteres ([email protected]). Así que la linea del for pondría:

for(x=1;x<(long-4);x++){

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #10 (permalink)  
Antiguo 06/09/2004, 05:23
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
nada no lo consigo te dejo aqui el script entero muchas gracias por tu tiempo

Código PHP:
<SCRIPT languaje="JavaScript">
      function 
check(){
        
emp=document.forms["formdatos"].empresa.value;
        
dir=document.forms["formdatos"].direccion.value;
        
ema=document.forms["formdatos"].email.value;
        
nif=document.forms["formdatos"].cifnif.value;
        
nom=document.forms["formdatos"].nombre.value;
        
loc=document.forms["formdatos"].localidad.value;
        
prov=document.forms["formdatos"].provincia.value;
        
cp=document.forms["formdatos"].cp.value;
        
opcion=document.forms["formdatos"].tdatos.selectedIndex;
        
contra=document.forms["formdatos"].contra.value;
        
recontra=document.forms["formdatos"].recontra.value;
        
long=ema.length;
        var 
a=0;
        for(
x=1;x<(long-4);x++){
            if(
ema.charAt(x)=='@'){
              
a=1;
               }
        }
        if(
opcion==0){
              
window.alert("Selecione Tipo de datos");
              
document.forms["formdatos"].tdatos.focus();
        }
        else if(
emp=="" opcion==2){
             
window.alert("Empresa en blanco");
             
document.forms["formdatos"].empresa.focus();
        }
        else if(
a==ema!=""){
              
window.alert("Su dirección de email ha de tener el formato nombre@servidor");
               
document.forms["formdatos"].email.focus();
        }
        else if(
ema==""){
             
window.alert("Email En Blanco");
             
document.forms["formdatos"].email.focus();
        }
        else if(
nif==""){
             
window.alert("Nif en Blanco");
             
document.forms["formdatos"].cifnif.focus();
        }
        else if(
nom==""){
             
window.alert("Nombre de contacto en Blanco");
             
document.forms["formdatos"].nombre.focus();
        }
        else if(
dir==""){
             
window.alert("Dirección en Blanco");
             
document.forms["formdatos"].direccion.focus();
        }
        else if(
cp==""){
             
window.alert("Codigo Postal en Blanco");
             
document.forms["formdatos"].cp.focus();
        }
        else if(
loc==""){
             
window.alert("Localidad en Blanco");
             
document.forms["formdatos"].localidad.focus();
        }
        else if(
prov==""){
             
window.alert("Provincia en blanco")
             
document.forms["formdatos"].provincia.focus();
        }
        else if(
contra==""){
             
window.alert("Contraseña en blanco")
            
document.forms["formdatos"].contra.focus();
        }
        else if(
recontra==""){
             
window.alert("Repetir contraseña en Blanco")
             
document.forms["formdatos"].recontra.focus();
        }
        else if(
contra!=recontra){
             
window.alert("Contraseñas no coinciden")
             
document.forms["formdatos"].contra.focus();
        }
        else if(
document.forms["formdatos"].contrato.checked == false){
              
window.alert("Debe Aceptar los terminos del contrato");
        }else
        {
            
document.forms["formdatos"].submit();
        }
}
  
</SCRIPT> 
si quito estas lienas si funciona :
Código PHP:
        long=ema.length
        var 
a=0
        for(
x=1;x<(long-4);x++){ 
            if(
ema.charAt(x)=='@'){ 
              
a=1
               } 
        } 
Un Saludo

Última edición por DINASEN; 06/09/2004 a las 05:24
  #11 (permalink)  
Antiguo 06/09/2004, 05:35
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
cambia el nombre de la variable "long" por "longi". Long es una palabra reservada de JS.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #12 (permalink)  
Antiguo 06/09/2004, 05:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola a todos:

Cuando quieras usar el operador lógico and, debes duplicar el carácter "&" o sea "&&" lo mismo un or es "||"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #13 (permalink)  
Antiguo 06/09/2004, 05:46
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
POR FINNNNNNNNNNNN GRACIAS

estabas en lo cierto toda al culpa la tenia el long

Mil gracias de verdad

un Saludo
  #14 (permalink)  
Antiguo 06/09/2004, 05:48
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Bueno, en realidad la culpa fue del cha-cha-cha...

Me alegro de que te sirviera!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #15 (permalink)  
Antiguo 06/09/2004, 05:54
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
Caricatos me fije en lo que me dijistes y la verdad es que de momento fucniona bien tanto en nestcape como en Ie ya que me pasa el foco sin problemas, pero lo cambio para mayor seguridad?¿

Un Saludo
  #16 (permalink)  
Antiguo 07/09/2004, 00:52
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
que es mejor?¿
  #17 (permalink)  
Antiguo 07/09/2004, 00:53
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Lo tradicional es como lo dice caricatos... hazle caso
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #18 (permalink)  
Antiguo 07/09/2004, 03:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Aunque no estoy del todo seguro (sería cuestión de ver algún manual) con un simbolo es la operación lógica y con 2 símbolos es la comparación:

alert(true & true) = 1
alert(true && true) = true

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #19 (permalink)  
Antiguo 07/09/2004, 03:59
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Cita:
Las operaciones bit a bit se ocupan de controlar e impostar los bit. Hay que recordar que el resultado de estas operaciones no siempre es 0 ó 1, como para los operadores lógicos.

Los operadores sono:

Operador Acción
& AND
| OR
^ XOR
~ Complemento a uno
>> Shift a la derecha
<< Shift a la izquierda
>>> Shift a la derecha rellenando los ceros

Las tablas de verdad son las mismas que las de los operadores lógicos.

El operador AND bit a bit se puede concebir como un modo para cancelar un bit llevándolo a 0. El operador OR bit a bit es el contrario de AND y puede utilizarse para impostar en 1 un bit, mientras que el operador XOR puede utilizarse para impostar en 1 un bit si los bit comparados son distintos.
Sacado de http://www.htmlpoint.com/javascript/corso/js_30.htm
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #20 (permalink)  
Antiguo 07/09/2004, 04:04
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Sobre operaciones bit a bit:

http://www.maestrosdelweb.com/editorial/gestusr/

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #21 (permalink)  
Antiguo 07/09/2004, 04:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
KarlanKas: ¡Excelentes referencias!

Saludetes
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #22 (permalink)  
Antiguo 07/09/2004, 04:33
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
El bendito Google, caricatos. El bendito Google!

Un abrazo, caricatos!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #23 (permalink)  
Antiguo 07/09/2004, 05:46
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 8 meses
Puntos: 1
vale pues lo cambiare pro si las moscas

Un Saludo y gracias a los dos
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 18:46.