2014-12-19 68 views
0

我在表和按钮中有一个下拉列表,它应该显示数据库是否有值。在我的下拉我发送到功能表中的Ajax MVC隐藏按钮

onchange = "getInfoid(this)" 

功能:

function getInfoid(myvalue) { 
     var typeid = $(myvalue).val(); 
     $.ajax({ 
      url: '/mycontroller/GetInfoUrl', 
      contentType: 'application/html; charset=utf-8', 
      type: 'Get', 
      data: { 
       id: typeid 
      }, 
      dataType: 'html' 
     }) 
      .success(function (result) { 
       var tr = $($(myvalue).parents("tr")[0]); 
       var button = tr.find("button#Details0"); 
       $(button).attr("onclick", "viewOhaInfo('" + result + "')"); 
       $(button).show(); 
      }) 
      .error(function (result) { 
      var tr = $($(myvalue).parents("tr")[0]); 
      tr.find("button#Details0").hide(); 
      }); 
    }; 

的脚本不显示或隐藏按钮。测试它;我尝试了Ajax脚本来显示和隐藏div,并尝试隐藏并在没有Ajax的情况下使用相同的方式显示表中的按钮,两者都可以工作。我是否失去了myvalue变量的价值或者其他原因。

编辑 的问题是在我的成功和错误的理解,我改变了我的脚本:

.success(function (data) { 
       if (data == null) { 
        var tr = $($(myvalue).parents("tr")[0]); 
        tr.find("button#Details0").hide(); 
       } else { 

        var tr = $($(myvalue).parents("tr")[0]); 
        var button = tr.find("button#Details0"); 
        $(button).attr("onclick", "viewOhaInfo('" + data + "')"); 
        $(button).show(); 
       } 

这解决了这个问题。谢谢大家的帮助。

+1

不知道你在问什么或你的问题是什么 – charlietfl 2014-12-19 06:40:09

+0

好点,我编辑了这个问题。脚本不显示或隐藏按钮。感谢 – hncl 2014-12-19 07:28:50

+0

您可能需要查看控制台以查看是否有任何错误 – Vivekh 2014-12-19 07:30:56

回答

0

jqXHR.success()和jqXHR.error()已弃用。阅读api docs

jqXHR.done(function,data(textStatus,jqXHR){});替代 构造成功回调选项,.done()方法替换 弃用的jqXHR.success()方法。有关 实施细节,请参阅deferred.done()。

jqXHR.fail(function(jqXHR,textStatus,errorThrown){});一个 错误回调选项的替代构造,.fail()方法 取代了已弃用的.error()方法。有关 实施细节,请参阅deferred.fail()。

所以修改你的脚本是:

$.ajax({ 
     url: '/mycontroller/GetInfoUrl', 
     contentType: 'application/html; charset=utf-8', 
     type: 'Get', 
     data: { 
      id: typeid 
     }, 
     dataType: 'html' 
    }) 
     .done(function (result) { 
      var tr = $($(myvalue).parents("tr")[0]); 
      var button = tr.find("button#Details0"); 
      $(button).attr("onclick", "viewOhaInfo('" + result + "')"); 
      $(button).show(); 
     }) 
     .fail(function (jqXHR, textStatus) { 
     var tr = $($(myvalue).parents("tr")[0]); 
     tr.find("button#Details0").hide(); 
     }); 

Here是如何做到这一点交替。