我有一个包含一个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选择器从文本框中获取正确的值? (以前我用过的母版页它工作得很好的方式)
问候 守护
您使用的是哪个版本的ASP.NET?使用4.0,您可以尝试使用'ClientIDMode'属性,以便在运行时更容易地找到控件。 – 2010-05-10 12:51:12