我通过ajax文章设置一个TextBox控件的值.
$('#txtSite').val(msg.d.SiteName);
这是正常工作,TextBox的值正确更改.但是,当我将信息发布到数据库时,txtSite.Text值为空!
有任何想法吗?我生气了吗
$.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;
仍然给我一个空值.
解决方法
您的文本框设置为Enabled =“false”,它在浏览器中显示为disabled =“disabled”.
Disabled form inputs are not submitted.
解决方案是使文本框启用和只读:
txtSite.Enabled = true; txtSite.Attributes.Add("readonly","readonly"); //on prerender event or somewhere else
或使用与runat =“server”不同的元素集,如< asp:HiddenField />并使用AJAX调用更新文本框和备用元素:
success: function(msg) { if (msg.d != null) { $('#txtSite').val(msg.d.SiteName); $('#hiddenInput').val(msg.d.SiteName); } else { $('#txtSite').val(''); } }
原文地址:https://www.jb51.cc/jquery/176865.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。