2014-12-19 69 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是如何做到這一點交替。