2015-09-03 2 views
0

Хорошо, поэтому у меня есть следующий код. Первое предупреждение работает правильно при загрузке, но второе предупреждение никогда не делает. Чтобы добавить, нажатие на кнопку с никогда не работает, но это отдельная проблема. Я чувствую, что «предупреждение» может быть ключом к тому, где id идет не так, поэтому любая помощь будет полезна. Благодарю.jQuery работает правильно в одном месте, но не в другом

<script> 
    alert("Here #1"); 
    $(document).ready(function() { 
    $("#buttonClick").click(function() { 
     var div = $("#mainBackground"); 
     div.slideUp(400, function() { 
     redirect(); 

     }); 
    }); 
    }); 

    alert("Here #2"); 

    $(document).ready(function() { 
    $("#sign").click(function() { 
     jQuery.ajax({ 
     url: "check_availability.php", 
     data: 'username=' + $("#username").val(), 
     'password=' + $("#password").val(); 
     type: "POST", 
     success: function(data) { 
      alert("hereagain"); 
      if ($("#username").val() === "") { 
      //Do nothing 
      } else if ($('#username').val().length < 5) { 
      $("#usernameConsole").html("Username must be 5-15 characters"); 
      $("#username").css('backgroundColor', '#ff6666'); 
      $("#usernameAvailable").css('color', '#ff6666'); 
      } else if (data === "accept") { 
      $("#usernameConsole").html("Signed In"); 
      $("#username").css('backgroundColor', '#66cc66'); 
      $("#usernameAvailable").css('color', '#66cc66'); 
      } else { 
      $("#usernameConsole").html("Not accepted"); 
      $("#username").css('backgroundColor', '#ff6666'); 
      $("#usernameAvailable").css('color', '#ff6666'); 
      } 
     }, 
     error: function() {} 
     }); 

    }); 
    }); 
</script> 

<script> 
+0

Если второе предупреждение разве показ, а затем проверить консоль JavaScript на наличие ошибок, ошибки остановит выполнение скрипта –

+0

Нет кодов ошибок showi нг. –

+0

ваши 'данные:' это неправильно, должно быть внутри '{}' и заменить ';' в конце словами ',' –

ответ

1

Исправлен код:

alert("Here #1"); 
$(document).ready(function() { 
    $("#buttonClick").click(function() { 
    var div = $("#mainBackground"); 
    div.slideUp(400, function() { 
     redirect(); 

    }); 
    }); 
}); 

alert("Here #2"); 

$(document).ready(function() { 
    $("#sign").click(function() { 
    jQuery.ajax({ 
     url: "check_availability.php", 
     data: ['username=' + $("#username").val(), 'password=' + $("#password").val()], 
     type: "POST", 
     success: function(data) { 
     alert("hereagain"); 
     if ($("#username").val() === "") { 
      //Do nothing 
     } else if ($('#username').val().length < 5) { 
      $("#usernameConsole").html("Username must be 5-15 characters"); 
      $("#username").css('backgroundColor', '#ff6666'); 
      $("#usernameAvailable").css('color', '#ff6666'); 
     } else if (data === "accept") { 
      $("#usernameConsole").html("Signed In"); 
      $("#username").css('backgroundColor', '#66cc66'); 
      $("#usernameAvailable").css('color', '#66cc66'); 
     } else { 
      $("#usernameConsole").html("Not accepted"); 
      $("#username").css('backgroundColor', '#ff6666'); 
      $("#usernameAvailable").css('color', '#ff6666'); 
     } 
     }, 
     error: function() {} 
    }); 

    }); 
}); 

Вы проходили данные в функции неправильно.

Edit 1: Предпочтительно, хотя, передавать данные в качестве объекта:

data: {fieldName1: value1, fieldName2: value2} 
+0

Это сработало! Благодаря! Обманул меня, потому что это происходило после моих предупреждений. Благодарю. –

+0

'data:' должен быть объектом, а не массивом. – Barmar

+0

Вы правы. Это предпочтительнее, но не обязательно. Он передавал свои данные без спаривания по значению, и я предполагал, что он этого не требует. –

0

В JQuery, вы должны знать, когда DOM готов выполнить любой код, потому что, JQuery идет о DOM манипуляции, и вы не можете манипулировать html-тегами, когда в DOM не существует.

Вы можете использовать:

$(document).ready(function() 
{ 
    // Code... 
}); 

Или

$(function() 
{ 
    // Code... 
}); 

$(document).ready(function() { // This code makes sure to execute Javascript code when the DOM is loaded completely, only once. 
 
    alert("Here #1"); 
 

 
    $("#buttonClick").click(function() { 
 
    var div = $("#mainBackground"); 
 
    div.slideUp(400, function() { 
 
     redirect(); 
 

 
    }); 
 
    }); 
 

 
    alert("Here #2"); 
 

 
    $("#sign").click(function() { 
 
    jQuery.ajax({ 
 
     url: "check_availability.php", 
 
     data: { // Correct 
 
     username: $("#username").val(), 
 
     password: $("#password").val() 
 
     }, 
 
     type: "POST", 
 
     success: function(data) { 
 
     alert("hereagain"); 
 
     if ($("#username").val() === "") { 
 
      //Do nothing 
 
     } else if ($('#username').val().length < 5) { 
 
      $("#usernameConsole").html("Username must be 5-15 characters"); 
 
      $("#username").css('backgroundColor', '#ff6666'); 
 
      $("#usernameAvailable").css('color', '#ff6666'); 
 
     } else if (data === "accept") { 
 
      $("#usernameConsole").html("Signed In"); 
 
      $("#username").css('backgroundColor', '#66cc66'); 
 
      $("#usernameAvailable").css('color', '#66cc66'); 
 
     } else { 
 
      $("#usernameConsole").html("Not accepted"); 
 
      $("#username").css('backgroundColor', '#ff6666'); 
 
      $("#usernameAvailable").css('color', '#ff6666'); 
 
     } 
 
     }, 
 
     error: function() {} 
 
    }); 
 
    }); 
 
});