2013-05-07 2 views
1

Я использую простой jQuery для сравнения двух переменных, но каждый раз он дает ложный результат. Вот кусок кода:Сравнение переменных в jquery

var fromIM = $("#passwordFroma").val(); 
loadContent(passwordValentered); 
var encrypt = document.getElementById("prtCnt").value; 
alert("ajax call " + encrypt); 
alert(encrypt == fromIM); 

В приведенном выше кусок кода,

passwordFroma скрытый текстовое поле.
passwordValentered - это текстовое поле , чтобы получить пользовательский ввод.
prtCnt - это скрытое поле.

Кроме того, LoadContent (passwordValentered) функция является Ajax вызова, которая устанавливает значение для скрытого поля prtCnt. Это подтверждается из первого предупреждения. Но, когда я сравниваю значения во втором предупреждении, я всегда получаю результат как false.
Пожалуйста, дайте мне знать, где я ошибаюсь! Я использую jQuery 1.9.

+1

Вы проверили, как выглядят 'encrypt' и' fromIM' * (т. их значения) * в консоли JavaScript? – summea

+4

Ajax является асинхронным. Убедитесь, что вы вызываете вызов «alert (encrypt == fromIM)» в функции успеха вызова ajax. – mccannf

+0

Согласен. Вы должны сделать что-то вроде 'alert (fromIM +" == "+ encrypt +"? "); чтобы узнать, являются ли ценности такими, какими вы считаете. – CoderOfHonor

ответ

3

Ваше генерируемое поле с идентификатором prtCnt генерируется асинхронно (AJAX), поэтому он не доступен сразу после вызова loadContent(passwordValentered);

var fromIM = $("#passwordFroma").val(); 
// Sends AJAX 
loadContent(passwordValentered); 
// AJAX is not finished here 
var encrypt = document.getElementById("prtCnt").value; 
alert("ajax call " + encrypt); 
alert(encrypt == fromIM); 

Вы должны пройти обратный вызов loadContent

var fromIM = $("#passwordFroma").val(); 
loadContent(passwordValentered, function(){ 
    var encrypt = document.getElementById("prtCnt").value; 
    alert("ajax call " + encrypt); 
    alert(encrypt == fromIM); 
}); 

И измените свой loadContent так, чтобы он вызывал данный обратный вызов от обработчика успеха $.ajax

+0

Ок Хуан, позвольте мне попробовать. Поскольку я довольно новичок в Ajax и jQuery, так что все это может занять некоторое время, и уже на моем месте уже 2 часа ночи, я попробую завтра и скоро вас обновит. Спасибо за предложение !! – Adi

+0

Спасибо, тонну Хуана !!! Это сработало!!!! – Adi

Смежные вопросы