比较jQuery中的变量

时间:2013-05-07 20:08:30

标签: 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 的值。这是从第一个警报确认的。但是,当我比较第二个警报中的值时,我总是将结果视为错误 请让我知道我哪里错了!我正在使用jQuery 1.9。

1 个答案:

答案 0 :(得分: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的成功处理程序调用给定的回调