So this is my code for some ajax that I'm doing.
function check_password(){
  var username = $("#username").val();
  if(username.length > 0){
    var bool = -1;
    $('#Loading2').show();
    $.post("check_login.php", {
      username: $('#username').val(),
      password: $('#password').val(),
    },
    function(response) {
      $('#Info2').fadeOut(500);
      $('#Loading2').hide();
      bool = response.indexOf('success');
      setTimeout("finishAjax('Info2', '"+escape(response)+"')", 450);
      $('#password').after(bool);
      return response.indexOf('success');  
    });
  }
}
function finishAjax(id, response){
  $('#'+id).html(unescape(response));
  $('#'+id).fadeIn(750);
} 
and here I'm trying to handle the return value from the check password function.
jQuery(function() {
  $("#submitl").click(function(){
    $(".error").hide();
    var hasError = false;
    var passwordVal = $("#password").val();
    var username = $("#username").val();
    if (username == '') {
      $("#username").after('<span style="color:red" class="error"><p></p>Please enter a username.</span>');
      hasError = true;
    } else if (passwordVal == '') {
      $("#password").after('<span style="color:red" class="error"><p></p>Please enter a password.</span>');
      hasError = true;
    } else if (check_password() != 73) {
      hasError = true;
      $("#password").after(check_password());
    }
    if (hasError == true) {
      return false;
    }
  });
});
For some reason the if statement is returning true even when the index(return value) is 73. I test this by using jquery within the if statement to print out the value of the returning function and it prints out 73. I have a feeling my error is caused because of dynamically typed variables in javascript.
 
     
     
     
    