Gracias a ambos por su tiempo, publico el codigo completo a ver si consiguen algun error, el xml devuelve siempre false o true, de eso estoy 100% seguro, el codigo lo tome de un ejemplo en la web y lo fui adaptando, la idea es implementarlo en un formulario para que se comprueben los datos introducidos en el mismo, lo tengo en el evento onblur:
Código:
var req;
var respuesta;
var ValUsu;
function leer_doc(url) {
req = false;
// Llama objeto XMLHttpRequest
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType('text/xml');
}
// Si no funciona intenta utiliar el objeto IE/Windows ActiveX
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if(req!=null){
req.onreadystatechange = procesarRespuesta;
req.open('GET', url, true);
req.send(null);
}
}
function autentica(Val){
ValUsu=Val;
if (ValUsu=="strCelNum"){
usuario = document.getElementById("strCelIni").value + document.getElementById(ValUsu).value;
}else{
usuario = document.getElementById(ValUsu).value;
}
switch (ValUsu) {
case "strUsu":
case "strRefPor":
url = "../Script/ValRef.asp?usuario=" + usuario;
break;
case "stremail":
url = "../Script/ValRef.asp?mail=" + usuario;
break;
case "strCelNum":
url = "../Script/ValRef.asp?cel=" + usuario;
break;
}
leer_doc(url);
}
function procesarRespuesta(){
respuesta = req.responseXML;
var existe;
//existe = respuesta.getElementsByTagName("existe").item(0).firstChild.data;
existe = respuesta.getElementsByTagName("existe")[0].firstChild.data;
if (existe=="true"){
switch (ValUsu) {
case "strUsu":
alert("Nombre de usuario no disponible.");
document.getElementById("strUsu").focus();
return;
case "stremail":
alert("Esta dirección de correo eléctronico ya fue registrada.");
document.getElementById("stremail").focus();
return;
case "strCelNum":
alert("Este número de celular ya fue registrada.");
document.getElementById("strCelNum").focus();
return;
}
}else{
switch (ValUsu) {
case "strRefPor":
alert("El nombre de usuario en el campo Referido por no existe.");
document.getElementById("strRefPor").focus();
return;
}
}
}
Esto contiene el xml
Código:
response.write("<?xml version='1.0' ?><existe>true</existe>")
El I.E. muestra el signo de advertencia al tratar de disparar la funcion; dice error en la pagina, y cuando entre a ver el detalle dice se requiere un objeto y muestro el numero de linea que esta en rojo.
Cuando empece a realizar pruebas con este codigo, aunque daba el mismo error, validaba el campo; para verificar porque sucedia esto coloque un alert(respuesta); luego de la linea en rojo, mostraba dos mensaje con valor null, el tercero mostraba la cabecera del xml y un cuarto en null de nuevo.
Gracias por su tiempo y espero no haber complicado todo con el ultimo parrafo.