javascript - Javascript 更改文本后获取 TextBox 文本

标签 javascript c# html asp.net

我在 ASP.NET 页面中有一个类似于 this one 的“ColorPicker”功能,不同之处在于右侧的阴影是根据阴影是否已被使用而动态填充的。

我有一个文本框,显示所选颜色/阴影的十六进制值(#RRGGBB):

<asp:TextBox runat="server" ID="TbxColorhex" Text="#FF0000" Enabled="false" />

渲染为:

<input name="TbxColorhex" type="text" value="#FF0000" id="TbxColorhex"></input>

当单击阴影(表格单元格)时,我使用 JavaScript 更改文本框中的文本(十六进制值)。

function selectShade(shadehex) {
    if (shadehex) {
        document.getElementById('divpreview').style.background = shadehex;
        document.getElementById('<%= TbxColorhex.ClientID %>').value = shadehex;
    }
}

我有一个确认所选颜色的按钮:

<asp:Button ID="BtnSelectColor" runat="server" Text="Select Color" OnClick="BtnSelectColor_Click" style="margin: 0 auto" />

单击时会触发此方法(在代码隐藏上):

protected void BtnSelectColor_Click(object sender, EventArgs e)
{
    if (!String.IsNullOrEmpty(TbxColorhex.Text))
    {
        Response.Redirect(Page.ResolveClientUrl("~/Something/AddProject.aspx?projcolor=" + TbxColorhex.Text));
    }
}

问题:

当单击阴影时,JavaScript 会相应地更改 TextBox 中的文本(您可以看到 TextBox 中的文本发生变化。但是,如果我使用调试器,我会注意到 的值没有变化input 标记中的 value 属性。因此,当我单击按钮时,它不会获取 TextBox 显示的文本。

最佳答案

问题出在 Enabled="false" 中。禁用输入的值不包含在浏览器向服务器提交的 POST 数据中。您可以尝试将 TextBox 设置为只读。

如果您必须将其保持禁用状态,请向表单添加一个 HiddenField 控件,并以与 TextBox 设置相同的方式在 javascript 中设置其值。然后,在服务器端代码中将值从 HiddenField 传输到 TextBox

关于javascript - Javascript 更改文本后获取 TextBox 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26641369/

相关文章:

javascript - 向 ui-block-b 添加填充

javascript - "Failed with: success/error was not called"试图在 Parse 中返回 httpResponse

c# - 获取字符串第 n 次出现的索引?

c# - 如何在可视化树中查找元素? wp7

javascript - Jquery Nav 检测屏幕尺寸

javascript - 我有一个表单和一个按钮来添加它的重复项。我希望重复的 radio 输入具有变量名称

javascript - 数据表日期时间提取分钟并添加 CSS 类

javascript - 如何将组件对象移动到全局对象?

javascript - jQuery UI 对话框按钮不会单击

c# - 为什么我的 ActionBlock 在我没有设置的情况下就处于已完成状态?