0

我正在尝试在 ajax 发布请求中进行这个简单的比较。我只想检查不同字符串值的发布响应,但它永远不会起作用。即使我确定 php 响应是字符串“mango”,弹出函数也不会被调用,你们能告诉我我在这里做错了什么吗?

$.ajax(
{
    type: 'POST',
    url: './doit1.php',


     data: {
     title: 'test',

     },
     success: function (good)
     {
              //handle success
              if($(good) =='mango')
             {
                popitup('./doit1.php?action=stop')
                //alert(good)
             else if ($(good) =='orange')
             {
                 //do something
             }
             else
             {
                //default action
             }
      },
      failure: function (bad)
      {
          //handle any errors
          alert(bad)

      }
});


function popitup(url) {
    newwindow=window.open(url,'name','height=200,width=150');
    if (window.focus) {newwindow.focus()}
    return false;
}
4

3 回答 3

2

您正在尝试在此处围绕返回的数据包装一个 jQuery 包装器:

if($(good) =='mango')

这是不正确的,因为good在这种情况下需要一个 DOM 元素才能使 this 具有任何意义。

如果good只是一个返回的字符串值,你应该这样做:

if(good == 'mango')
于 2013-02-13T20:38:13.550 回答
0

不知道good是什么很难说。然而,$() 总是返回一个不利于任何类型比较的 jQuery 集合对象。您可能只想使用good == 'mango'switch. 也许是good.fruit == 'mango'

于 2013-02-13T20:38:57.917 回答
0

当它应该作为字符串放入时,你在 jQuery 中包装得很好。

将成功函数替换为。

success: function (good){
  //handle success
  if(good==="mango"){
    popitup('./doit1.php?action=stop')
  }else if(good==="orange"){
    //Do something
  }else{
    //Default Action
  }
}
于 2013-02-13T20:38:25.753 回答