Foros del Web » Programando para Internet » Javascript »

Error con el validador y estandariazación de xhtml

Estas en el tema de Error con el validador y estandariazación de xhtml en el foro de Javascript en Foros del Web. Tengo en entre las etiquetas head el siguiente código en javaScript Código: <script type="text/javascript"> function camposobligatorios(clase,obligatorio,valor,elemento_formulario){//para mejorarlo falta pasar un mensaje personalizado por cada error ...
  #1 (permalink)  
Antiguo 11/05/2009, 08:20
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años, 1 mes
Puntos: 4
Error con el validador y estandariazación de xhtml

Tengo en entre las etiquetas head el siguiente código en javaScript
Código:
<script type="text/javascript">
	function camposobligatorios(clase,obligatorio,valor,elemento_formulario){//para mejorarlo falta pasar un mensaje personalizado por cada error producido
	array=document.getElementsByTagName(elemento_formulario);
	for(p=0;p<array.length;p++){
		if(array[p].className.length && array[p].className==clase){
			x=p+1;
			if(x<array.length && array[x].className.length && array[x].className==obligatorio && array[x].value==valor && cadenaVacia(array[p].value)){//el el primer parámetro de la condición nos aseguramos de no pasarnos de vuelta en el bucle
				alert(getvalue('obligatory'));
				array[p].focus();
				return false;
			}
		}
	}
	return true;
	}
	function comprobar(){
		if(camposobligatorios('campo','obligatorio','1','input')){
			putvalue('connection','on');
			formsubmit('form1');
		}
	}
</script>
Cuando acudo al validador de xhtml me da errores tales como:
# Line 16, Column 24: character ";" not allowed in attribute specification list

for(p=0;p<array.length;p++){


# Error Line 16, Column 24: element "array.length" undefined

for(p=0;p<array.length;p++){



You have used the element named above in your document, but the document type you are using does not define an element of that name. This error is often caused by:

* incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Frameset" document type to get the "<frameset>" element),
* by using vendor proprietary extensions such as "<spacer>" or "<marquee>" (this is usually fixed by using CSS to achieve the desired effect instead).
* by using upper-case tags in XHTML (in XHTML attributes and elements must be all lower-case).

El script lo tengo entre los head y lo confunde con etiquetado html ????
  #2 (permalink)  
Antiguo 11/05/2009, 08:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Error con el validador y estandariazación de xhtml

sucede que cuando se incluye codigo javascript directamente en el codigo HML, el validador tiende a entender que estas escribiendo HTML. es decir, el contenido del elemento SCRIPT es de tipo PCDATA (Parsed Character DATA). de nuevo, en otras palabras el navegador interpreta su contenido como HTML. para corregirlo tienes que comentar el codigo o crear un CDATASection.
Código:
<script type='text/javascript'>
//<![CDATA[
codigo javascript;
//]]></script>
esto resolvera tu problema de validacion. sin embargo, presenta un fallo para navegadores con user-agent Apple WebKit (KHTML) donde tiene un bug en que no interpreta los CDATA Section. por tanto considero que lo mejor es utilizar comentario HTML.
Código:
<script type='text/javascript'>
//<!--
codigo javascript;
//--></script>
  #3 (permalink)  
Antiguo 11/05/2009, 09:58
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años, 1 mes
Puntos: 4
De acuerdo Respuesta: Error con el validador y estandariazación de xhtml

Gracias por la respuesta, por los mensajes intuía que iban los tiros por ahí, pero sin tu ayuda no sabría como resolverlo a no ser de colocar el código en un archivo externo.
  #4 (permalink)  
Antiguo 11/05/2009, 10:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Error con el validador y estandariazación de xhtml

Como sugerencia adicional, de ser posible, siempre coloca el código Javascript en un archivo separado (.js) y en el XHTML sólo haces referencia a ese archivo, así mantienes la limpieza del código.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 13:22.