代码之家  ›  专栏  ›  技术社区  ›  Øyvind Bråthen

jquery选择器和masterpage有问题

  •  0
  • Øyvind Bråthen  · 技术社区  · 16 年前

    我在使用jquery访问包含asp:textbox的母版页时遇到问题。我已经阅读了很多关于这个的SOFThread,并尝试了我所看到的所有不同的方法,但是无论如何,最终结果都是未定义的。

    这是母版页代码的相关部分:

    <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()的计算结果是未定义的。我知道masterpage会在id中添加一些前缀,所以我尝试在运行时使用该页中的id,该id最终为ct100_osxinputfrom,我还尝试了在搜索时发现的其他一些Hind,如$(“<%=osxinputfrom.clientid%>”),但最终在jquery ajax方法any调用的方法中未定义。方式。Ajay函数的第三和第四个参数被硬编码为test3和test4,在C backend方法中很好。

    所以我的问题很简单:如何重写jquery选择器以从文本框中获取正确的值?(在我使用母版页之前,顺便说一下,它工作得很好)

    最好的问候 守护进程

    2 回复  |  直到 16 年前
        1
  •  1
  •   Ali Habibzadeh    16 年前

    它会慢一点,但是你为什么不试着把cssclass=“bla”添加到你的标签上,然后用 $('.bla').val(); ?

        2
  •  0
  •   Coding Flow    16 年前

    应该使用以选择器结尾的属性

    Link

    它将会是 $("id$='osxinputfrom'")