【发布时间】:2014-10-29 21:57:43
【问题描述】:
我在 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 更改 TextBox 中的文本(十六进制值)。
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 中的文本发生变化。但是,如果我使用调试器,我注意到 value 的值没有变化input 标记中的属性。因此,当我单击按钮时,它不会获得 TextBox 显示的文本。
【问题讨论】:
-
在特定的
EventArgs e中你能看到调试时是否有 e.text 或类似的东西..?从 TextBox 的 onChange..not the button 请记住 Buttons 触发PostBacks因此您可能想要编写一个使用__DoPostBack(the name of the textbox, false);的 javascript 函数,然后在该特定事件上无论它是 OnChange 还是 Exit 、 onBlur 等。然后看看你能不能在那里捕捉到它
标签: javascript c# html asp.net