2010-05-10 76 views
0

我有一個包含一個asp:textbox,我試圖訪問使用jQuery的母版頁的問題。我已經閱讀了許多關於此的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添加一些前綴,所以我嘗試使用頁面中的ID作爲ct100_osxinputfrom,並且還嘗試了其他一些搜索後發現的其他後綴,如$(「#<% = osxinputfrom.ClientID%>「),但它最終仍然是從jQuery ajax方法調用的方法中的Undefined。硬編碼爲Test3和Test4的ajay函數的第三個和第四個參數在C#後端方法中很好。

所以我的問題很簡單:我如何重寫jQuery選擇器從文本框中獲取正確的值? (以前我用過的母版頁它工作得很好的方式)

問候 守護

+0

您使用的是哪個版本的ASP.NET?使用4.0,您可以嘗試使用'ClientIDMode'屬性,以便在運行時更容易地找到控件。 – 2010-05-10 12:51:12

回答

1

它會比較慢,但爲什麼不嘗試在你的標籤中加入cssclass =「bla」,然後用$('.bla').val();得到它?

+0

我結束了使用這段代碼,因爲我無法使用client.ID使這段代碼工作......至少它有幫助 – Bachask8 2013-12-03 21:15:29

0

您應該使用屬性與選擇結束

Link

這將是$("id$='osxinputfrom'")

+0

我也嘗試過這種方式,並期望它能夠工作,但它仍然給未定義的答案。我注意到現在更奇怪的是,在同一個jQuery函數中,在驗證中,我有以下代碼行: var email = $('#osx-modal-data#ctl00_osxinputemail').val() ; 這工作正常,但在函數的ajax部分內,相同的選擇器不起作用。 – 2010-05-10 14:46:43