基本上我有一个带登录页面和搜索页面的asp.net网站。
目前,我不知道为什么当用户点击任何一个登录文本框(用户名/密码)或在搜索文本框中输入时,网站会被重定向到默认页面。
我不知道为什么会发生这种情况,我已经尝试在包含搜索和登录面板的面板上设置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生成的代码被忽略了。
---------------更新----------------
我尝试添加一个隐藏按钮,并将该按钮设置为表单的默认按钮,并且每次都将其重定向到默认页面,但这确实意味着按下文本框中的输入只需重新加载页面,更好,但仍然不是理想的。
答案 0 :(得分:1)
这可能不是一个ASP.NET怪癖,就像它是一个网络浏览器的怪癖。
当您在单行文本字段中按Enter键时,浏览器会将表单提交到表单标记中指定的操作。
ASP.NET“有帮助”在body标签内创建一个表单标签,并将所有正文元素放在其中......
据我所知,您可以安全地删除此表单标记; HTML规范允许表单标记之外的字段用于JavaScript / AJAX操作。
答案 1 :(得分:0)
之前我见过这种行为,它发生在表单上的第一个按钮是LoginControl时。每次输入被按下它都会触发登录的click事件并基本上将用户注销。你在使用LoginControl吗?
最后,我必须在登录控件之前添加一个隐藏按钮。隐藏按钮没有做任何事情,但它阻止了LoginControl的执行。
答案 2 :(得分:0)
我曾经遇到过同样的问题。我们有一个登录表单,当用户点击进入时工作正常。然后,我们在一个点上在页面顶部的菜单栏中添加了一个搜索框/按钮。突然当用户点击输入时,他们会尝试执行搜索。我通过将页面的Form的.DefaultButton设置为我的登录按钮来解决它。