Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Скрипт не срабатывает с первого раза (https://javascript.ru/forum/jquery/33915-skript-ne-srabatyvaet-s-pervogo-raza.html)

Mateus 13.12.2012 23:14

Скрипт не срабатывает с первого раза
 
Доброго времени суток.
Следующий скрипт не всегда срабатывает при первом же обращении к нему. Вот код скрипта :

function profile_info_change() {
var
fullname = document.getElementById("fullname").value,
oldpassword = document.getElementById("old_password").value;
password = document.getElementById("password").value;
password2 = document.getElementById("password2").value;
about = document.getElementById("about").value;
$.ajax({
type: "POST",
url: "profile_info_changer.php",
data: {fullname: fullname, oldpassword: oldpassword, password: password, password2: password2, about: about },

success: function(msg){
$('#error').append(msg);
}
});
}

tropiko 14.12.2012 09:34

Mateus, во-первых, раз уж вы используете jQuery, тогда его следует использовать на полную катшку:
fullname = $("#fullname").val()


Во-вторых, следует прочитать про локальные переменные.
function profile_info_change() {
var fullname = document.getElementById("fullname").value,//Эта переменная находится в зоне видимости ф-ции profile_info_change
     oldpassword = document.getElementById("old_password").value; //Эта тоже
     password = document.getElementById("password").value; //А эта уже нет. Это свойство объекта window, глобальная переменная, грубо говоря
     //...
}


И, наконец, вы не привели условия, при которых вызывается данная функция. Без них нельзя понять, что идет не так.

Mateus 14.12.2012 12:33

Без HTML кода тяжело понять, по-этому и получилось недопонимание.

Данная функция вызывается из формы:
<input type=submit class="black_box" onclick="profile_info_change();"">

Про переменные - спасибо, исправил. Но все эти переменные являются локальными, т.е. попадают через форму в js, потом php (глобальные попадают уже в обработчик php через сессию)

Mateus 14.12.2012 12:35

Предполагаю, что "ошибка", а точнее неверное условие, находится в обработчике php.


Часовой пояс GMT +3, время: 22:06.