如何通过 JavaScript 使 asp 文本框为空
Posted
技术标签:
【中文标题】如何通过 JavaScript 使 asp 文本框为空【英文标题】:How to make asp textbox empty by JavaScript 【发布时间】:2017-08-07 06:41:03 【问题描述】:我在使用 javascript 函数将文本框设为空时遇到了问题。
如果未选中复选框,则 asp:Textbox 应禁用并为空。 它发生了,但在代码后面的所有时间都是可见的先前在该文本框中输入的值。
<asp:RadioButton ID="radio_fx_no" runat="server" Text="NO" GroupName="optradio1" onclick="CheckBoxChangedDisableFx(this);" />
<asp:RadioButton ID="radio_fx" runat="server" Text="YES" GroupName="optradio1" onclick="CheckBoxChangedAbleFx(this);" />
<asp:TextBox ID="txt_fx" ClientIDMode="Static" runat="server" Enabled="false" />
<script>
function CheckBoxChangedAbleFx(checkbox)
if (checkbox.checked == true)
document.getElementById('<%= txt_fx.ClientID %>').disabled = false;
function CheckBoxChangedDisableFx(checkbox)
if (checkbox.checked == true)
document.getElementById('<%= txt_fx.ClientID %>').value = "";
document.getElementById('<%= txt_fx.ClientID %>').disabled = true;
</script>
你知道我的代码有什么问题吗?
【问题讨论】:
onclick
处理服务器端事件,需要定义OnClientClick
OnClientClick="CheckBoxChangedAbleFx(this);"
怎么样?你的意图是客户端的空文本框,对吧?
当我想保存所有更改时的客户端和服务器端。但我不想在每次更改复选框后重新加载页面。我在客户端收到空文本框,但在服务器上没有。
我假设您在客户端上下文中已经有空文本框,现在是时候显示您必须通过 AJAX 或回发使文本框值为空的服务器端代码了。
【参考方案1】:
这个问题被称为缓存浏览器数据。在这种情况下,您可以尝试三件事:
1) 在每次回发的页面加载事件中清除textbox
的值:
if (IsPostBack)
txt_fx.text = "";
并在您的 aspx 代码中制作 text="":
<asp:TextBox ID="txt_fx" Text="".../>
2) 将textbox
的AutoComplete
属性设置为关闭以进行html 输入
或禁用asp文本框的autocompletetype
属性
<asp:TextBox ID="txt_fx" autocompletetype="disabled".../>
3) 或将页面的 FORM 标记的自动完成设置为“关闭”
如果你想在服务器端清除文本框的实际值而不回发,那么你需要使用 AJAX。
希望对你有帮助..!!
【讨论】:
【参考方案2】:在.cs文件中,Page_Load方法,加上这样的代码:
if(!Page.IsPostBack)
radio_fx.Attributes.Add("onClick", "return CheckBoxChangedState(this,false);");
radio_fx_no.Attributes.Add("onClick", "return CheckBoxChangedState(this,true);");
在.aspx文件中,修改如下:
<script type="text/javascript">
function CheckBoxChangedState(checkbox, state)
if (checkbox.checked == true)
document.getElementById('<%= txt_fx.ClientID %>').value = "";
document.getElementById('<%= txt_fx.ClientID %>').disabled = state;
<asp:RadioButton ID="radio_fx_no" runat="server" AutoPostBack="false" Text="NO" GroupName="optradio1" />
<asp:RadioButton ID="radio_fx" runat="server" AutoPostBack="false" Text="YES" GroupName="optradio1" />
【讨论】:
以上是关于如何通过 JavaScript 使 asp 文本框为空的主要内容,如果未能解决你的问题,请参考以下文章
如何使用javascript在asp.net中gridview内的按钮单击上应用文本框空白验证?
如何在javascript中使用两个具有相同ID的文本框获取asp.net用户控件的值
在 c# 中使用 javascript 日历设置值后如何获取文本框的文本?