微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过JQuery设置文本框值

我通过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;

仍然给我一个空值.

解决方法

您的文本框设置为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 举报,一经查实,本站将立刻删除。

相关推荐