当前位置:  开发笔记 > 编程语言 > 正文

jquery - javascript变量没有保持值

如何解决《jquery-javascript变量没有保持值》经验,为你挑选了1个好方法。

我正在使用此代码将表单提交到php脚本:

var valid = 'true';
$(document).ready(function(){
  $("#contact").submit(function(){
    $.post("process.php",
      $("#contact").serialize(),
      function(data){
        if(data.email_check == 'invalid'){
          valid = 'false'; //<---not set!
          $("#email1").addClass('missing'); 
          $("#message_ajax")
            .html("
Sorry is NOT a valid e-mail address. Try again.
"); } else { $("#message_ajax") .html("
YES! this is A valid e-mail address. DO NOT Try again.
"); } }, "json" ); if(valid == 'true'){ $("#contact").hide(); } return false; }); });

我知道脚本返回'invalid'值,因为div和css按预期更新,但'valid'变量永远不会设置为'false'.认为这是一个范围问题我已经移动了声明,如果声明周围没有喜悦.

可能的相关问题 - 我正在使用firebug来逐步执行代码,但它只在第一次执行代码时在断点处停止,而且从不再次,但我可以提交表单任意次,它总是按预期响应 - 有效或无效.如你所见,我对jQuery很新.



1> T. Stone..:

你在这里混合同步和异步代码.

if(valid == 'true'){
    $("#contact").hide();
}       

return false;

此代码^^^在调用回调之前运行function(data).

基本上发生的事情是这样的:

$ .post运行

if(valid =='true')被评估

.submit()函数返回false

调用回调函数(数据)

'有效'变量已设置

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有