2015-07-13 5 views
0

У меня есть этот jquery, чтобы проверить, используется ли имя пользователя перед отправкой регистрационной формы. Проверка имени пользователя работает нормально. Однако я хочу отключить кнопку отправки, если имя пользователя недоступно. Это мой код. Он работает в первый раз: если имя пользователя недоступно, кнопка отключена. Но как только имя пользователя недоступно, любое имя пользователя после того, что доступно, все еще оставляет кнопку отправки отключенной. Как я могу заставить кнопку активироваться без обновления страницы?disable button on ajax username request

<script type="text/javascript"> 
$(document).ready(function() { 
$("#username").keyup(function (e) { 

    //removes spaces from username 
    $(this).val($(this).val().replace(/\s/g, '')); 

    var username = $(this).val(); 
    if(username.length < 4){$("#user-result").html('');return;} 

    if(username.length >= 4){ 
     $("#user-result").html('<img src="imgs/ajax-loader.gif" />'); 
     $.post('check_username.php', {'username':username}, function(data) { 
      if(data == '<img src="imgs/available.png" /> Username Available'){ 
     $("#sumbit").attr("disabled", false); 
      $("#user-result").html(data); 
       }else{ 
      $("#submit").attr("disabled", true); 
        $("#user-result").html(data); 
       } 
     }); 
    } 
}); 
}); 
</script> 

check_username.php выглядит следующим образом:

//sanitize username 
$username = filter_var($username, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH); 

//check username in db 
$results = mysqli_query($connecDB,"SELECT username FROM users WHERE username='$username'"); 

//return count 
$username_exist = mysqli_num_rows($results); 

    if($username_exist) { 
    die('<img src="imgs/not-available.png" /> Username Not Available'); 
}else{ 
    die('<img src="imgs/available.png" /> Username Available'); 
} 

HTML представить как выглядит следующим образом: HTML вход

<input type="submit" id="submit" class="special" name="submit" 
value="Register" /> 
+0

использование removeAttr. '$ (" # submit "). removeAttr (" disabled ");' –

+0

все еще отключен после того, как имя пользователя недоступно. – user1022772

ответ

1

Попытка удалить выключающие использование: $("#sumbit").removeAttr("disabled");

Try этот код

<script type="text/javascript"> 
$(document).ready(function() { 
$("#username").keyup(function (e) { 

    //removes spaces from username 
    $(this).val($(this).val().replace(/\s/g, '')); 

    var username = $(this).val(); 
    if(username.length < 4){$("#user-result").html('');return;} 

    if(username.length >= 4){ 
     $("#user-result").html('<img src="imgs/ajax-loader.gif" />'); 
     $.post('check_username.php', {'username':username}, function(data) { 
      if(data == 'Available'){ 
      $("#submit").attr("disabled", false); 
      $("#user-result").html('<img src="imgs/available.png" /> Username Available'); 
       }else{ 
      $("#submit").attr("disabled", true); 
        $("#user-result").html('<img src="imgs/not-available.png" /> Username Not Available'); 
       } 
     }); 
    } 
}); 
}); 
</script> 

check_username.php выглядит следующим образом:

//sanitize username 
$username = filter_var($username, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH); 

//check username in db 
$results = mysqli_query($connecDB,"SELECT username FROM users WHERE username='$username'"); 

//return count 
$username_exist = mysqli_num_rows($results); 

    if($username_exist) { 
    die('NotAvailable'); 
}else{ 
    die('Available'); 
} 
+0

по-прежнему отключен после того, как имя пользователя недоступно – user1022772

+0

добавить код раньше, если условие и сообщите мне, что находится в предупреждении :: alert (данные == ' Имя пользователя доступно'); –

+0

при наличии имени пользователя true. когда имя пользователя недоступно, он говорит false. – user1022772