ASP.net文本框输入按钮按下地狱

时间:2010-04-15 15:04:39

标签: c# asp.net

基本上我有一个带登录页面和搜索页面的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生成的代码被忽略了。

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

我尝试添加一个隐藏按钮,并将该按钮设置为表单的默认按钮,并且每次都将其重定向到默认页面,但这确实意味着按下文本框中的输入只需重新加载页面,更好,但仍然不是理想的。

3 个答案:

答案 0 :(得分:1)

这可能不是一个ASP.NET怪癖,就像它是一个网络浏览器的怪癖。

当您在单行文本字段中按Enter键时,浏览器会将表单提交到表单标记中指定的操作。

ASP.NET“有帮助”在body标签内创建一个表单标签,并将所有正文元素放在其中......

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

答案 1 :(得分:0)

之前我见过这种行为,它发生在表单上的第一个按钮是LoginControl时。每次输入被按下它都会触发登录的click事件并基本上将用户注销。你在使用LoginControl吗?

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

答案 2 :(得分:0)

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