Проблема с селектором jQuery и MasterPage - PullRequest
0 голосов
/ 10 мая 2010

У меня проблема с главной страницей, содержащей текстовое поле asp:, к которому я пытаюсь получить доступ с помощью 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. Я понимаю, что мастер-страница добавит некоторый префикс к идентификатору, поэтому я попытался использовать идентификатор со страницы, когда он запускается, что заканчивается как ct100_osxinputfrom, и я также попробовал некоторые другие подсказки, которые я нашел при поиске как $ ("# <% = osxinputfrom.ClientID%> "), но в конечном итоге он становится неопределенным в методе, который в любом случае вызывается из метода jQuery ajax. Третий и четвертый параметры функции ajay, которые жестко закодированы как Test3 и Test4, хорошо подходят в бэкэнд-методе C #.

Так что мой вопрос прост: как я могу переписать селектор jQuery для получения правильного значения из текстового поля? (кстати, до того, как я использовал мастер-страницы, все работало нормально)

С наилучшими пожеланиями Daemon

Ответы [ 2 ]

1 голос
/ 10 мая 2010

Это будет немного медленнее, но почему бы вам не попробовать добавить cssclass = "bla" к вашему ярлыку и затем получить его с помощью $('.bla').val();?

0 голосов
/ 10 мая 2010

Вы должны использовать атрибут заканчивается селектором

Ссылка

это будет $("id$='osxinputfrom'")

...