Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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 - Fatal编程技术网

C# ASP.net文本框“输入”按钮按下

C# ASP.net文本框“输入”按钮按下,c#,asp.net,C#,Asp.net,基本上我有一个asp.net网站的登录和搜索页面 目前,我不知道为什么当用户在登录文本框(用户名/密码)或搜索文本框中点击enter时,网站会重定向到默认页面 我不知道为什么会发生这种情况,我已经尝试在包含搜索的面板和登录面板上设置defaultButton,但这似乎不起作用 我还尝试用javascript捕捉按键事件,但这也不起作用 我不知道什么事件被炒了,为什么,或者为什么它似乎覆盖了我试图做的一切 以前有人见过这样的吗 ---------------编辑------------------

基本上我有一个asp.net网站的登录和搜索页面

目前,我不知道为什么当用户在登录文本框(用户名/密码)或搜索文本框中点击enter时,网站会重定向到默认页面

我不知道为什么会发生这种情况,我已经尝试在包含搜索的面板和登录面板上设置defaultButton,但这似乎不起作用

我还尝试用javascript捕捉按键事件,但这也不起作用

我不知道什么事件被炒了,为什么,或者为什么它似乎覆盖了我试图做的一切

以前有人见过这样的吗

---------------编辑-------------------

 <div class="searchBar" onkeypress="javascript:return
  WebForm_FireDefaultButton(event,'ctl00_MainContent_logView1_LogRepeater_ctl02_lbSearch')">

  <input name="ctl00$MainContent$logView1$LogRepeater$ctl02$ctl02" type="text" />
  <a id="ctl00_MainContent_logView1_LogRepeater_ctl02_lbSearch" href="javascript:__doPostBack('ctl00$MainContent$logView1$LogRepeater$ctl02$lbSearch','')">
  Search</a>
 </div>

好的,下面是ASP.net生成的被忽略的代码

---------------更新----------------

 <div class="searchBar" onkeypress="javascript:return
  WebForm_FireDefaultButton(event,'ctl00_MainContent_logView1_LogRepeater_ctl02_lbSearch')">

  <input name="ctl00$MainContent$logView1$LogRepeater$ctl02$ctl02" type="text" />
  <a id="ctl00_MainContent_logView1_LogRepeater_ctl02_lbSearch" href="javascript:__doPostBack('ctl00$MainContent$logView1$LogRepeater$ctl02$lbSearch','')">
  Search</a>
 </div>

我尝试添加一个隐藏按钮,并将该按钮设置为表单的默认按钮,从而阻止它每次重定向到默认页面,但这确实意味着在文本框中按enter键只会重新加载页面,这更好,但仍然不理想。

我以前见过这种行为,它发生在表单上的第一个按钮是LoginControl时。每次按下enter键都会触发登录的click事件,用户基本上会注销。您正在使用LoginControl吗


最后,我不得不在登录控件之前添加一个隐藏按钮。隐藏按钮没有做任何事情,但它阻止了LoginControl的执行。

这可能不是ASP.NET的怪癖,而是web浏览器的怪癖

在单行文本字段中按enter键时,浏览器将向表单标记中指定的操作提交表单

ASP.NET“helpfully”在body标记内创建一个表单标记,并将所有body元素放入其中


据我所知,您可以安全地删除此表单标签;HTML规范允许在JavaScript/AJAX操作中使用表单标记之外的字段。

我曾经遇到过同样的问题。我们有一个登录表单,当用户按enter键时,它可以正常工作。然后,我们在页面顶部的菜单栏中添加了一个搜索框/按钮。突然,当用户按enter键时,他们会尝试执行搜索。我通过将页面表单的.default按钮设置为我的登录按钮解决了这个问题。

你能发布一些有问题的代码吗?否则我们只是猜测。如果你能将重复的代码减少到最少,然后发布代码,这将非常有帮助。