如何在$.ajax中使用if语句(并检查字符串响应

how to use if statment inside $.ajax( and check for string response?

本文关键字:语句 检查 响应 字符串 if ajax      更新时间:2023-09-26

我正在尝试在ajax post请求中进行这个简单的比较。我只是想检查不同字符串值的帖子响应,但它永远不会起作用。弹出函数从来没有被调用过,即使我确信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;
}

您正试图将jQuery包装器包装在返回的数据上:

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

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

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

if(good == 'mango')

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

当jQuery应该作为字符串放入时,您在jQuery中包装良好。

将成功函数替换为。

success: function (good){
  //handle success
  if(good==="mango"){
    popitup('./doit1.php?action=stop')
  }else if(good==="orange"){
    //Do something
  }else{
    //Default Action
  }
}