JavaScript如果条件不起作用

时间:2012-06-24 13:01:59

标签: javascript

我对这个if语句不能在javascript中工作搞砸了。 我使用js来调用php和php文件echo'true';

我的java脚本代码

 function like_add(article_id){
$.post('my/like.php', {article_id:article_id}, function(data){
    if(data == 'true'){//this part never works
        alert(data);
    }else{
    alert(data);
    }
});

}

我尝试使用alert('*'+data+'*');

更改提醒

得到了空格*真*。 我怎样才能使这个脚本工作。

整个代码

 function like_add(article_id){
$.post('ajax/like.php', {article_id:article_id}, function(data){

    if(data == 'true'){
        total_votes(article_id);
    }else{
    alert(data);
    }
});

} PHP代码

        if(previously_liked($article_id) === true){
        echo 'You\'ve already liked this!';                 
        }else{
            add_like($article_id);
            echo 'true';
        }


function total_votes(article_id){
$.post('ajax/total_votes.php', {article_id:article_id}, function(data){
    $('#article_'+article_id).text(data);

}); }

3 个答案:

答案 0 :(得分:2)

你可以在测试中加入一个空格:

  if (data == ' true') { ... }

或者您可以在数据中查找“true”模式:

  if (/true/.test(data)) { ... }

后者可能会更具弹性,但实际上让服务器返回更结构化,更不模糊的东西会更好。

答案 1 :(得分:0)

我认为你可以做到以下几点:

  1. 检查不应包含空格的回复。 或
  2. 使用data = data.replace(/\s/g, "");

答案 2 :(得分:0)

如果它是一个引领你的领先空间,请尝试

if (data.replace(/^\s+|\s+$/,'').toLowerCase() === 'true')