【发布时间】:2013-01-23 16:13:48
【问题描述】:
我正在通过 ajax 帖子设置 TextBox 控件值。
$('#txtSite').val(msg.d.SiteName);
这是有效的,TextBox 的值已正确更改。但是,当我将信息发布到数据库时,txtSite.Text 的值是空的!!
有什么想法吗?我要疯了吗?
填充TextBox的代码:
$.ajax({
type:"POST",
url: "MyPage.aspx/ValidateSite",
data: "{ siteID: '" + $('#txtSiteID').val() + "' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
if (msg.d != null) {
$('#txtSite').val(msg.d.SiteName); // It's definitely doing this
}
else {
$('#txtSite').val('');
}
},
error: function(msg) {
}
});
保存到服务器的代码(所有连接等均正确且有效)。此代码在 ASP 按钮单击事件中:
SqlCommand cmd = new SqlCommand("INSERT INTO [Sites] ([SiteName]) VALUES ('" + txtSite.Text + "')", conn);
cmd.ExecuteNonQuery();
TextBox 的定义如下:
<asp:TextBox ID="txtSite" runat="server" AutoComplete="off" TabIndex="4" MaxLength="50" Style="width: 230px" Enabled="false" CssClass="FormDisabledTextWithSmallHeight" />
我还尝试将我的 JQuery 更改为使用纯 Javascript 并这样做:
document.getElementById("txtSite").value = msg.d.SiteName;
仍然返回一个空值。
【问题讨论】:
-
#txtSite有name属性吗? -
@AustinBrunkhorst,它需要名称属性吗?我有一个
ID。会试一试的。 -
@kad1r:我发帖的不是 JQuery。 JQuery 帖子从数据库中获取值并填充文本框。它正在正确填充文本框,但是当我使用 CSharp 代码保存数据时,
TextBox.Text属性为空。 -
你说你在做
TextBox.Text。向我们展示您的所有代码。 -
呃,等等,您发布的代码不相关。向我们展示提交表单的代码。我怀疑这是 VIEWSTATE 没有返回到服务器的问题。