这是一个按钮,通过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 !');
}
});
任何人都可以告诉为什么会发生这种情况
答案 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方法进行更改...
无需使用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 !');
}
});
问候 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');