如何通过 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) 将textboxAutoComplete 属性设置为关闭以进行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用户控件的值

javascript怎么禁止在文本框中输入?

在 c# 中使用 javascript 日历设置值后如何获取文本框的文本?

如何通过 C# ASP.net 从 SQL Server 中的文本框中存储日期

ASP让文本框保存扫描枪的数据