2011-05-07 110 views
0

我正在构建一个多部分表单。每个部分执行一个新的脚本。当每个脚本执行时,它将检查所需的数据。如果说数据丢失它会返回一个字符串“false”

第1部分正确失败(调用highlight()),但部分2只吐出了“假”绕过highlight功能仿佛data !== false。我试过清理数据,但这似乎不起作用。有任何想法吗?

感谢

$('.submit').live('click', function(){ 
    var bclick = $(this); 
    var frm = "../../scripts/retain-" + $(this).attr('rel') + ".php"; 
    var fields = $('#retain-form').serialize(); 

    $.post(frm, fields, function(data){ 
     if(data == 'false'){ 
      highlight(); 
      data = ''; 
     }else{ 
      var nForm = $(bclick).attr('rel'); 
      nForm = parseInt(nForm[4]) + 1; 
      $(bclick).attr('rel', "form" + nForm); 
      $('#retain-steps').html(data); 
     } 
    }); 
}) 

回答

0

highlight功能应该得到bclick PARAM

function highlight(bclick){ 
... 
} 

和这样调用:

highlight(bclick); 

您应该通过bclick参数去你highlight功能,所以它可以知道哪个部分要突出显示。

干杯

+0

感谢您的回复。不是解决方案。最新发生的是最初的点击调用“script1.php”,如果所有需要的数据都通过了,它将使用新的表单(表单2)进行回复。当form2数据被传递给script2时,如果所需的数据不存在,它应该吐出“false”。 $ .post数据在第二次收到有效数据时不会捕获“false”。 – qwerty 2011-05-07 02:10:11

+0

程序员错误。一些我如何返回“假”而不是“假” 谢谢 – qwerty 2011-05-07 02:28:02

+0

它发生hehehe。我很高兴你解决了你的问题。干杯 – 2011-05-07 02:34:38

0

我不是你想要做什么和什么错在这里完全清楚,但有一点要小心使用类型强迫周围JavaScript's "falsy" values==比较。由于"" == false,你遇到了一些不直观的错误。尝试在您的条件中使用严格的===比较来代替。

+0

感谢您的帖子。由于im不知道一种方法来返回一个布尔值false到jquery,我只是用一个字符串“false”。我最终确定了它。谢谢! – qwerty 2011-05-07 02:27:22