Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET中实现文本框上的单击事件?_C#_Asp.net_Onclick - Fatal编程技术网

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

在我的web应用程序中,我需要一个功能,以便当用户单击文本框输入值时,它应该使按钮和其他字段可见

我正在使用下面提供的代码,但无法使其工作

C#:

ASP.NET:

<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>