0

私はajaxpostリクエスト内でこの単純な比較を行おうとしています。異なる文字列値の事後応答を確認したいのですが、機能しません。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要素である必要があるため、これは正しくありません。

goodが返される文字列値だけの場合は、次のようにする必要があります。

if(good == 'mango')
于 2013-02-13T20:38:13.550 に答える
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 に答える
0

good何を言うのが難しいかを知らずに。ただし、どのような種類の比較にも適さないjQueryコレクションオブジェクトを$() 常に返します。good == 'mango'おそらく、またはを使用したいだけですswitch。多分それはgood.fruit == 'mango'です。

于 2013-02-13T20:38:57.917 に答える