返回ajax值时隐藏按钮

时间:2015-08-14 09:13:22

标签: javascript jquery ajax

这是一个按钮,通过ajax点击某个任务。通过ajax我得到一个json格式的结果,在控制台

中看起来像这样
class B { };
class A: public B {
    A::B ab;       // B is the inherited injected B
    A::A aa;       // Error: A::A is the constructor
};

现在我希望每当 ["25", 16, "ABC", "DEF", 1] 位于第4位时,我希望隐藏几个按钮。我写的代码是

1

if条件似乎有效,因为我试图在if条件中放置一个警告框并且它工作,但按钮仍然显示。

我尝试使用警告框进行测试的代码是

$.ajax({
    type: 'post',
    url: 'script.php',
    dataType: 'json',
    data: {
      txt: txtbox,
      hidden: hiddenTxt
    },
    cache: false,
    success: function(returndata) {

        if(returndata[4]=='1')
        {
            $("#first").hide();
            $("#second").hide();
            $("#third").hide();
        }

    },
    error: function() { 
      console.error('Failed to process ajax !');
    }

  });

任何人都可以告诉为什么会发生这种情况

4 个答案:

答案 0 :(得分:1)

我知道这就是你所做的。我正在挑战解决您的问题。我们一个接一个地做。首次尝试,尝试使用此代码而不是代码:

$.post("script.php", {txt: txtbox, hidden: hiddenTxt}, function (res) {
  alert("Response: " + res);
  alert("Type: " + typeof res);
});

请在评论中告诉我您的结果。欢呼声。

答案 1 :(得分:0)

你匹配了一个' 1'作为隐藏部分中的string,但在警报部分中将1作为number匹配。这可能是问题所在。

避免使用

if(returndata[4]=='1') 

使用此

if(returndata[4] == 1)   

答案 2 :(得分:0)

尝试按照ajax方法进行更改...

  1. 使用GET方法代替POST
  2. 无需使用dataType:'json'

    $.ajax({
    type: 'GET',
    url: 'script.php',
    data: {
      txt: txtbox,
      hidden: hiddenTxt
    },
    cache: false,
    success: function(returndata) {
    
        if(returndata[4]=='1')
        {
            $("#first").hide();
            $("#second").hide();
            $("#third").hide();
        }
    
    },
    error: function() { 
      console.error('Failed to process ajax !');
    }
      });
    
  3. 问候 PREM

答案 3 :(得分:0)

在评论中,我看到你发布的ajax结果是:

["25", 16, "ABC", "DEF", 1] 

你的问题是比较 ===" 1" (当我开始写这个答案时,我看到了那种类型的比较)并且你的数字不是1 " 1"作为字符串, === 表示类型比较,因此以正确的方式它给出错误,因为1是numbet和" 1"是字符串。您可以通过将条件更改为:

来解决此问题
returndata[4]===1

或没有类型检查:

returndata[4]==1

那就是它。

为了更好地理解这个答案,我准备了一些例子。



console.log("1 === '1'");
console.log(1==='1');

console.log("1 === 1");
console.log(1===1);


console.log("1 == '1' ( no type comarision )");
console.log(1=='1');