【问题标题】:Show the Submit button, if and only if text (a character) is entered in a textbox else hide当且仅当在文本框中输入文本(字符)时显示提交按钮,否则隐藏
【发布时间】:2019-08-05 16:22:17
【问题描述】:

我对编程领域比较陌生,这是一个初学者问题。 我在 aspx 页面中有一个文本框和一个提交按钮,同时试图从页面上的用户那里获取一些信息。

现在,我只想在用户在文本框中输入文本时显示提交按钮,否则只需隐藏它。

我认为 onKeyDown 或 onKeyEvent 应该可以帮助我做到这一点,但它不能正常工作。该按钮仅在我输入 2 个字符后显示并且不会隐藏,除非我在删除框中的最后一个字符后再次按退格键。我不想使用<input 标记,而能够使用<asp:Button 和文本框标记。

代码:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate> 

<asp:TextBox ID="TextBox" onKeyDown = "showAndHide()" runat="server" Height="95px" Width="340px" 
    CssClass="SuggestionTxtBox" TextMode="MultiLine" 
    ToolTip="Enter your Suggestion here...." BorderStyle="Ridge" 
    ontextchanged="TextBox_TextChanged"></asp:TextBox>

<br />
<asp:Button ID="Button" runat="server" Text="Submit" 
    CssClass="SuggestionSubmitButton" onclick="Button_Click" 
    onclientclick="  " BackColor="#F5F5F5" Font-Size="13px" 
    ForeColor="#030756" Font-Bold="true" BorderStyle="None" Visible="False"  />
<br />
<asp:Label ID="Label2" runat="server" Text="" CssClass="SuggestionFootNote"                                                                           ForeColor="#030756"   Font-Italic="True" Font-Size="12px"></asp:Label>
<p>
&nbsp;</p>

<input type="text" id="input1" onkeydown="showAndHide();" /> 
<input type="submit" id="submit" style="display: none;" /> 


<script type="text/javascript">

inputOne = document.getElementById("input1");

inputSubmit = document.getElementById("submit");

function showAndHide() {
    if (inputOne.value == "") {
        inputSubmit.style.display = "none";
    }
    else {
        inputSubmit.style.display = "block";
    }
} 

</script> 
</ContentTemplate>
</asp:UpdatePanel>'

【问题讨论】:

    标签: javascript c# .net events dom-events


    【解决方案1】:

    请使用OnKeyUp 而不是onkeydown

    如果是 ASP.Net Button 和 Textbox 则使用

    inputOne = document.getElementById("<%= TextBox1.ClientID %>");
    
    inputSubmit = document.getElementById("<%= Button1.ClientID %>");
    

    在页面加载中

    If(!IsPostBack)
    {
        Button1.Attributes.Add("OnKeyUp","showAndHide();");
        Button1.Style.Add("display","none");
    }
    

    【讨论】:

    • 现在效果很好!但是有没有办法可以用我的 asp:button 和 asp:TextBox 字段创建相同的功能?
    • VS 在我尝试添加此行时显示以下错误:Button.Styles.Add"display","none");错误 2“System.Web.UI.WebControls.Button”不包含“Styles”的定义,并且找不到接受“System.Web.UI.WebControls.Button”类型的第一个参数的扩展方法“Styles”(您是否缺少 using 指令或程序集引用?)
    • 使用Style 而不是Styles。对问题进行一些调查,而不是逐字复制代码并希望它能正常工作,这也是一个好主意。一个简单的网络搜索,或者看一下 intellisense(或 MSDN 文档)就可以澄清这里的问题。
    • 请忽略之前的评论。它是“样式”(使用智能感知更正)而不是“样式”我现在得到一个页面编译错误:“”文本框是我的文本框的 ID。我错过了什么吗?
    • TextBox是关键字,请改成TextBox1
    猜你喜欢
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多