C# 如何在ASP.NET中实现文本框上的单击事件?
在我的web应用程序中,我需要一个功能,以便当用户单击文本框输入值时,它应该使按钮和其他字段可见 我正在使用下面提供的代码,但无法使其工作 C#: ASP.NET:C# 如何在ASP.NET中实现文本框上的单击事件?,c#,asp.net,onclick,C#,Asp.net,Onclick,在我的web应用程序中,我需要一个功能,以便当用户单击文本框输入值时,它应该使按钮和其他字段可见 我正在使用下面提供的代码,但无法使其工作 C#: ASP.NET: <asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" OnClick="TextBox1_Click"></asp:TextBox> <asp:Button ID="ButtonSearch" run
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" OnClick="TextBox1_Click"></asp:TextBox>
<asp:Button ID="ButtonSearch" runat="server" OnClick="ButtonSearch_Click" Text="Search" Visible="False" />
如何做到这一点?jQuery是解决您问题的最佳方案。代码如下所示:
$("#TextBox1").on("click",function(){$("#ButtonSearch").css("visibility", "visible");})
您可以通过将
添加到页面来包含脚本,然后可以将上面的代码段添加到
标记中。设置自动回发=“True”
。这样,事件将在服务器端触发,按钮将变为可见
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" OnClick="TextBox1_Click" AutoPostBack="true"></asp:TextBox>
然而,若您只想控制按钮的可视性,那个么您真的应该考虑javascript。这将节省返回服务器的行程
<asp:TextBox onclick="txtBox1_ClientClicked()" ID="TextBox1" runat="server" OnClick="TextBox1_Click"></asp:TextBox>
<asp:Button ID="ButtonSearch" runat="server" OnClick="ButtonSearch_Click" Text="Search" style="display:none;" />
<script type="text/javascript">
function txtBox1_ClientClicked(){
var theButton = document.getElementById('<%=ButtonSearch.ClientID%>');
theButton.style.display = 'block';
}
</script>
函数txtBox1_ClientClicked(){
var theButton=document.getElementById(“”);
theButton.style.display='block';
}
您无需回发到服务器即可完成工作。例如,您可以使用客户端onFocus
事件和javascript/jquery
我知道我使用的是文本类型的输入,而您使用的是一个ASP控件,可以在服务器上发布,但这里有一个JSFIDLE可以帮助您找到正确的方法:$(“”)。单击(function(){
$(“#TextBox1”).show():
});
在此代码中,您需要传递要在单击按钮时可见的字段ID。将文本框放入
div
中,并使用codebehind中的div
onClick事件。这不是你要求的,但对我来说没有任何错误。下面是一个javascript
函数,用于实现请求的事件:
function toggleVisibility()
{
document.getElementById('TextBox1').disabled = true;
/*
...some other code...
*/
}
当然,在实现这个JS函数之后,您必须在div
定义中定义onclick
事件
<div id="TBdiv" onClick="toggleVisibility()">
<asp:TextBox ID="TextBox1"..../>
</div>
重要提示:由于您现在已从codebehind禁用了
文本框
,因此必须在某个位置启用它,然后才能再次使用它。否则,当页面运行时,您将看不到它。这个问题看起来很傻,但是,我以前从未使用过jquery。我应该在哪里添加这部分代码?我已经更新了答案。如果这能回答你的问题,请告诉我。
function toggleVisibility()
{
document.getElementById('TextBox1').disabled = true;
/*
...some other code...
*/
}
<div id="TBdiv" onClick="toggleVisibility()">
<asp:TextBox ID="TextBox1"..../>
</div>