2013-08-23 1 views
0

jQuery-ui 탭이있는 MVC 페이지가 있습니다. 사용자가 관련 탭을 선택하면 jQuery ajax 호출이 실행되어 선택 목록을로드합니다. 그것은 잘 작동합니다. 사용자는 단추를 클릭하여 다시 한 번 동일한 호출을 수행하여 목록을 다시로드 할 수 있습니다.탭과 버튼에서 동일한 호출로 jQuery 문제 발생

버튼에서 호출하면 아약스 호출이 항상 실패합니다! 버튼을 첫 번째 이벤트로 만들기 위해 순서를 바꾸고 탭 표시에서 통화를 건너 뛸려고했습니다. 그러나 그것은 여전히 ​​같은 오류를 주었다.

ajax 호출은 호출되는 동일한 함수에서 분리되어 있습니다. 다른 이벤트에서 호출 할 때 어떻게 다를 수 있습니까?

$("#tabs").tabs({ 
    show: function (event, ui) { 
     var tabName = $(ui.tab).attr("href"); 
     if (tabName == "#tabResult") 
      loadResults(); 
    } 
}); 


$("#btnLoadResults").click(function() { 
    loadResults(); 
}); 


function loadResults() { 
    var testCaseId = $("#TestCase_Id").val(); 
    $.getJSON("api/TestsApi/GetResults", { testCaseId: testCaseId }) 
      .done(function (data) { 
       $("#lstResults").empty(); 
       $.each(data, function (index, item) { 
        $("#lstResults").append("<option value='" + item.Id + "' data-response='" + item.Response + "'>" + item.StartTime + "</option>"); 
       }); 
       $("#txtResult").val(""); 
       $("#lstResults").prop("selectedIndex", 0); 
      }); 
} 

탭 쇼에서 호출이 항상 작동합니다

이 관련 코드입니다. 단추 클릭으로부터의 호출은 디버그 환경에서 실행될 때 작동하지만 인트라넷에 배포 될 때는 작동하지 않습니다.

피들러를 체크인했지만 두 요청 모두 요청 및 응답이 동일합니다.

결과 쿼리 문자열 전체 현재 양식이 어떻게 든 제출하는 경우처럼 ....

내가 탭 쇼 이벤트가 "사용되지"와 "활성화"되는 jQuery를-UI 상태가 될 것입니다 것으로 나타났습니다 매우 이상한 보인다 지금 사용. 활성화를 시도했지만 작동하지 않습니다. 내 버전은 jquery-ui-1.8.24.js 및 jquery-1.10.2.min.js입니다.

답변

0

이 문제에 대한 의견은 다음과 같습니다.

전체적인 문제는 버튼의 누락 된 유형 속성이었습니다. 다른 브라우저에서 기본 동작이 다른 것으로 밝혀졌습니다. Internet Explorer에서 기본값은 type = "submit"입니다. 로컬 컴퓨터에서 실행 중일 때는 아무 문제가 없었지만 원격 컴퓨터에서는 작동하지 않았습니다. 나는 이제 type = "button"을 지정했고 모든 것이 다시 괜찮습니다!

또한 jQuery-UI 탭 이벤트의 이름이 버전 1.8에서 1.9로 변경되었음을 알게되었습니다. 1.8에서 그것은 "쇼"이고 1.9에서 그리고 이후에 그것은 "활성화"됩니다.

관련 문제