【问题标题】:JQuery .ajax data not definedJQuery .ajax 数据未定义
【发布时间】:2013-07-04 20:03:36
【问题描述】:

我有一个 $.ajax 请求,当我发送带有success:function(data) 的响应数据时,我得到了数据,但由于某种原因我不能在If 语句中使用它:

    $.ajax({
      type: "POST",
      url: "control.php",
      data: {"txtNumFattura" : $("#txtNumFattura").val(),
             "txtDataFattura": $("#txtDataFattura").val()},

      success: function(data) {
        console.log(data);
        if (data == 'OK') {
          console.log("Chiave non ancora utilizzata");
          $("#submitMyForm").removeAttr("disabled");
        } 
        else if(data == 'KO') {
          $("#mySubmitForm").attr("disabled","disabled");
          console.log("Chiave Utilizzata");
        };
      }
    });

例如,console.log 给了我“OK”或“KO”,但它似乎没有在 if 语句中读取它。

【问题讨论】:

  • 您期望什么数据作为响应?
  • 如果插入的值还没有用作我的表中的主键,它只会响应“OK”。

标签: jquery ajax


【解决方案1】:

试试

if(data.toLowerCase().indexOf('ok') != -1){
  // ok was found
} else if (data.toLowerCase().indexOf('ko') != -1) {
  // ko was found
} else {
  // neither was found
}

【讨论】:

  • 谢谢德文,它有帮助!你能解释一下为什么它以前不起作用吗?!
  • 使用 indexOf 将在整个字符串中搜索任何出现的 ok 或 ko 是否有任何空格或任何其他字符.. 使用 toLowerCase() 只是为了确保无论您如何键入它 Ok ,好的,好的,好的,它会找到的。
  • @user2551659 如果它对您有帮助,请不要忘记接受这个答案:)
【解决方案2】:

OK 或 KO 之后可能会有额外的空格。使用

console.log("*" + data + "*");

如果有,您可以使用 replace() 删除这些。例如,

data = data.replace(/\s/g, "");

\s 是一个空白字符,“g”表示全局。

【讨论】:

    【解决方案3】:

    如果你确定它给你 OK 或 KO,你可以试试这个:

    if ($.trim(data) === 'OK') {
      console.log("Chiave non ancora utilizzata");
      $("#submitMyForm").removeAttr("disabled");
    } else if($.trim(data) === 'KO') {
      $("#mySubmitForm").attr("disabled","disabled");
      console.log("Chiave Utilizzata");
    };
    

    【讨论】:

    • 其实也可以!不知道为什么,但由于某种原因,它放了一个额外的空格。
    猜你喜欢
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2018-12-07
    • 1970-01-01
    相关资源
    最近更新 更多