Tengo un botón de envío para mi formulario en mi archivo PHP como a continuación.

 <input type="submit" name="submit" value="submit" disabled="true" />

Ahora envío una solicitud asincrónica usando un objeto de solicitud,

document.getElementById("username").onblur=function(){ 
username(this.value);
 };

function username(value)
{
request = createRequest();
if(request==null) {
alert("Unable to create request");
return;
}
var url= "sign_up.php?value=" +
escape(value);
request.open("GET",url,true);
request.onreadystatechange = displayDetails;
request.send(null);
}
function displayDetails() {
if (request.readyState == 4) {
if (request.status == 200) {
checked = document.getElementById("check");
checked.innerHTML = request.responseText;
document.getElementById("submit").disabled="false";
}
}
} 

Aquí básicamente está verificando la disponibilidad de un nombre de usuario, ahora habilito el botón enviar, si hay un nombre de usuario disponible. Pero realmente no está habilitando el botón. ¿Alguien puede decirme por qué?

0
Kraken 8 jul. 2011 a las 10:44

3 respuestas

La mejor respuesta

Deshágase de las comillas, lo que hizo fue asignar una cadena "falsa" al atributo disabled del elemento HTML. Cambia la última línea a esto:

document.getElementById("submit").disabled = false;
1
Benny Tjia 8 jul. 2011 a las 06:54

Inhabilitar:

document.getElementById("submit").setAttribute('disabled', 'disabled');

Habilitar:

document.getElementById("submit").removeAttribute('disabled');
0
Alex Pliutau 8 jul. 2011 a las 06:55

Versión jquery

$("#username").blur(function(){
    $("#submit").attr("disabled","disabled");
    $.ajax({
        method: "GET",
        dataType: "html",
        url: "sign_up.php",
        data: {
            cmd: "check_username",
            value: $(this).val()
        },
        success: function(data){
            $("#check").html(data);
            $("#submit").removeAttr("disabled");
        },
        error: function(){
            $("#check").html("ajax error");
            $("#submit").removeAttr("disabled");
        }
    });
});
0
Ilia Choly 8 jul. 2011 a las 07:12