2010-05-10 6 views
0

jQuery를 사용하여 액세스하려고하는 asp : textbox가 포함 된 마스터 페이지에 문제가 있습니다. 나는 이것에 관해 많은 sof 쓰레드를 읽었고, 내가 본 모든 다른 접근법을 시도했지만, 결과에 관계없이 최종 결과는 Undefined로 끝난다.jQuery 선택기 및 마스터 문제

이것은 MasterPage 코드의 관련 부분입니다 :

내가 버튼을 클릭

<p><asp:Label ID="Label1" AssociatedControlID="osxinputfrom" runat="server">Navn</asp:Label><asp:TextBox CssClass="osxinputform" ID="osxinputfrom" runat="server"></asp:TextBox></p> 
이, JQuery와의 .js 파일에서 다음 코드가 실행 :

show: function(d) { 
     $('#osx-modal-content .osxsubmitbutton').click(function (e) { 
     e.preventDefault(); 
     if (OSX.validate()){      
      $('#osx-modal-data').fadeOut(200); 
      d.container.animate(
      {height:80}, 
      500, 
      function() { 
       $('#osx-modal-data').html("<h2>Sender...</h2>").fadeIn(250, function() { 
       $.ajax({ 
        type: "POST", 
        url: "Default.aspx/GetDate", 
        data: "{'from':'" + $("#osxinputfrom").val() + "','mailaddress':'" + $("#osxinputmail").val() + "','header':'Test3','message':'Test4'}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(msg) { 
        $('#osx-modal-data').fadeOut(200, function() { 
         $('#osx-modal-data').html('<h2>Meldingen er sendt!</h2>'); 
         $('#osx-modal-data').fadeIn(200); 
        }); 
        }, 
        error: function(msg){ 
        $('#osx-modal-data').fadeOut(200, function() { 
         $('#osx-modal-data').html('<h2>Feil oppstod ved sending av melding!</h2>'); 
         $('#osx-modal-data').fadeIn(200); 
        }); 
        } 
       }); 
       }); 
      } 
     ); 
     } 
     else{ 
      $('#osxinputstatus').fadeOut(250, function() { 
      $('#osxinputstatus').html('<p id="osxinputstatus">' + OSX.message + '</a>'); 
      $('#osxinputstatus').fadeIn(250); 
      }); 
     }   
     }); 
    }, 

그래서 여기서 문제는 $ ("# osxinputfrom") .val()이 Undefined로 평가된다는 것입니다. 나는 masterpage가 ID에 접두사를 추가 할 것이므로 ct100_osxinputfrom으로 끝나는 페이지가 실행될 때 ID를 사용하려고 시도했음을 이해하고 $ ("# < % = osxinputfrom.ClientID %> "), 어쨌든 jQuery ajax 메소드에서 호출 된 메소드에서 Undefined로 끝납니다. Test3 및 Test4로 하드 코드 된 ajay 함수의 세 번째 및 네 번째 매개 변수는 C# 백엔드 메서드에서 제대로 작동합니다.

제 질문은 간단합니다. jQuery 선택기를 다시 작성하여 텍스트 상자에서 올바른 값을 가져올 수 있습니까? 당신은 속성을 사용한다

+0

어떤 ASP.NET 버전을 사용하고 있습니까? 4.0에서는'ClientIDMode' 속성을 사용하여 런타임에 컨트롤을 쉽게 찾을 수 있습니다. –

답변

1

그것은 abit 느린 것입니다 그러나 왜 당신의 레이블에 추가 cssclass = "bla"시도하고 $('.bla').val(); 함께 얻을?

+0

이 코드는 client.ID를 사용하여이 코드를 작동시킬 수 없기 때문에 종료되었습니다 ... 적어도 도움이되었습니다. – Bachask8

0

이 선택으로 끝나는

안부 데몬

Link

가 될 것이다 (나는 마스터 페이지를 사용하기 전에이 방법으로 잘 작동) $("id$='osxinputfrom'")

+0

나는 이것을 시도해 보았지만 작동 할 것으로 기대했지만 여전히 Undefined를 답으로 제공합니다. 내가 낯선 것을 알게 된 사실은 동일한 jQuery 함수에서 유효성 검사 안에 다음 코드 줄이 있다는 것입니다. var email = $ ('# osx-modal-data # ctl00_osxinputemail'). ; 잘 작동하지만 함수의 아약스 부분에서는 동일한 선택기가 작동하지 않습니다. –