2014-12-19 4 views
0

데이터베이스에 값 형식이 있으면 표시 할 테이블과 버튼의 드롭 다운 목록이 있습니다.테이블 행의 Ajax MVC 숨기기 버튼

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(); 
      }); 
    }; 

이 스크립트는 표시하거나 버튼을 숨기지 않습니다 : 내 드롭 다운에서 나는 함수에

onchange = "getInfoid(this)" 

기능을 보냅니다. 그것을 시험하기 위하여; 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

+0

좋은 지적, 나는 질문을 편집했습니다. 스크립트는 단추를 표시하거나 숨기지 않습니다. 감사합니다 – hncl

+0

아마도 어떤 오류가 있는지 보려면 콘솔을 살펴 봐야합니다. – Vivekh

답변

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

대안 적 방법으로 할 수 있습니다.

관련 문제