2013-03-07 3 views
1

나는 작동하는 무언가에 대한 약간의 통찰력을 기대하고 있습니다. 지금은 그렇지 않습니다. 왜 그런지 이해할 수 없습니다.ajax를 통해로드 된 jquery 대화 상자에서 반환 값

이것은 VB 및 jquery에서 asp.net을 사용하고 있습니다.

나는 약속 선택 화면이있는 페이지가 있으며, 화면에는 분기 목록과 분기별로 리피터를 사용할 수있는 약속 수가 표시됩니다.

약속 된 수의 블록 중 하나를 클릭하면 jquery가 지점과 날짜를 지나가는 아약스를 통해 다른 .aspx 페이지를 호출합니다. 이 페이지는 이들을 사용하여 날짜를 표시하는 양식을 생성합니다. ajax를 통해 반환 된 HTML은 div의 HTML 요소를 채우는 데 사용되며 JQuery 대화 상자로 표시됩니다. "|"이 대화 상자 내에서

은 "["& Selected_Time & "]"를 텍스트 상자라고 TIME_ID이 가득 텍스트 상자라는 time_selected가 가득 링크를 클릭시 사용 가능한 각 시간에 대한 링크입니다 &는 & Select_Booking_Slot_ID "ǁ"

을 우리가 (글 상자 포함) 대화 상자의 HTML을 획득하고 정보를 얻을 수있는 날짜와 ID를 둘러싼 구분 기호를 사용하여 구문 분석 close 이벤트가 대화 상자의 초기 로딩에서는 필요한 것.

이제는 페이지의 한 인스턴스에서 작동하고 있으며 동일한 페이지의 모바일 버전을 만들었으며 더 이상 작동하지 않는다는 점을 강조했습니다. 원본과 비교하여 다시 돌아갑니다. 더 이상 작동하지 않습니다.

반환 된 HTML에는 더해진 텍스트 상자의 내용이 더 이상 포함되지 않습니다.

다음은 선택 페이지를로드하고 기본 페이지에있는 닫기 이벤트가있는 대화 상자에 삽입하는 코드입니다. 여기에

 $("a.showslots").click(function() { 
      $("#<%=bookingslot_branch.ClientID %>").val($(this).attr('branch')); 
      $("#<%=bookingslot_date.ClientID %>").val($(this).attr('date')); 
         $.ajax({ 
          url: "appointment_select_small.aspx?slots=" + $(this).attr('id') + "&date=" + $(this).attr('date') + "&branch=" + $(this).attr('branchtext') + "&branchid=" + $(this).attr('branch'), 
          context: document.body 
         }).done(function (data) { 
          $("#Slots").html(data); 
          $("#Panel_Slots").dialog({ 
           modal: true, 
           resizable: false, 
           close: function (event, ui) { 
            var data = $("#Panel_Slots").html(); 
            var test_str = data; 

            var start_pos = test_str.indexOf('[') + 1; 
            var end_pos = test_str.indexOf(']', start_pos); 
            var text_to_get = test_str.substring(start_pos, end_pos); 

           var start_pos1 = test_str.indexOf('ǀ') + 1; 
           var end_pos1 = test_str.indexOf('ǁ', start_pos1); 
           var text_to_get1 = test_str.substring(start_pos1, end_pos1); 

           if (text_to_get.length != 0) { 
            $("#<%=bookingslot_time.ClientID %>").val(text_to_get); 
            $("#<%=bookingslot_id.ClientID %>").val(text_to_get1); 
            $("#<%=btn_bookingslot_click.ClientID %>")[0].click(); 
           } 
           //$(this).remove(); 
           return false; 
          } 
         }).parent().find('.ui-dialog-titlebar-close').hide(); 
         $("#Panel_Slots").dialog('open'); 
         $("#Panel_Slots").position({ 
          of: window, 
          my: "center center", 
          at: "center center" 
         }); 
        }); 
        return false; 
       }); 

그리고이 어떤 도움을 이해할 수있을 것이다 appointment_select_small.aspx

   $("a.bookappointment").click(function() { 
       $("#time_selected").val("[" + $(this).attr('id') + "]"); 
       $("#time_id").val("ǀ" + $(this).attr('bid') + "ǁ"); 
       $("#Panel_Slots").dialog('close'); 
       return false; 
      }); 

에서 코드입니다, 감사합니다.

+0

어디에서 언제 appointment_select_small.aspx의 코드가 호출됩니까? – iappwebdev

+0

이 Visual Studio를 개발할 때 디버깅을 위해 IE9에 연결되었지만 IE가 IE7 표준을 문서 모드로 표시한다는 사실을 눈치 채 셨습니다. 나는 나의 문제를 해결할 것이라는 희망으로 몇 가지 검증 과정을 밟을 것이다. 너의 점심 팔꿈치에 매달려 ... –

+0

Whua ... IE로 디버깅! 끔찍한 경험. 좋은 점은 프로파일 러가 거대한 javascript ressource needs를 관찰하는 것입니다. – iappwebdev

답변

0

이제 해결되었습니다. DOM에 추가 요소를 추가하여 읽으려고하여이 문제를 혼란스럽게 만들었습니다. jQuery에서 bind 함수를 찾았으므로 아약스로드를 따라 가면서 새로 만든 A 태그에 이벤트를 바인딩하고 직접 필요한 속성을 가져옵니다.

관련 문제