C# ASP.net文本框“输入”按钮按下
基本上我有一个asp.net网站的登录和搜索页面 目前,我不知道为什么当用户在登录文本框(用户名/密码)或搜索文本框中点击enter时,网站会重定向到默认页面 我不知道为什么会发生这种情况,我已经尝试在包含搜索的面板和登录面板上设置defaultButton,但这似乎不起作用 我还尝试用javascript捕捉按键事件,但这也不起作用 我不知道什么事件被炒了,为什么,或者为什么它似乎覆盖了我试图做的一切 以前有人见过这样的吗 ---------------编辑-------------------C# ASP.net文本框“输入”按钮按下,c#,asp.net,C#,Asp.net,基本上我有一个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按钮设置为我的登录按钮解决了这个问题。你能发布一些有问题的代码吗?否则我们只是猜测。如果你能将重复的代码减少到最少,然后发布代码,这将非常有帮助。