我已将此简单搜索表单添加到数据库Web应用程序的菜单区域:
//Code which needs to mock
List<list> li = new List<list>();
query = "some query as input";
using (SqlDataReader sqlDataReader = databaseWrapper.ExecuteReader(query, null))
{
if (sqlDataReader != null)
{
if (sqlDataReader.HasRows)
{
while (sqlDataReader.Read())
{
R1 rm = new R1
{
r3 = Convert.ToString(sqlDataReader["Name"]),
r4 = Convert.ToInt32(sqlDataReader["Id"])
};
li.Add(rm);
}
}
rR.li = li;
return rR;
}
}
它在大多数页面上都有效,但是在两页上,按Enter键无济于事。您可以在https://missiondemo.kizunadb.com(一个空的演示实例)上进行尝试-使用“ demo” /“ demo”登录。菜单栏搜索表单不会提交的两个页面是“ New Person / Org”(一个大的编辑表单)和“ DB Settings”(一堆小表格和少量的AJAX)。
所有页面上的搜索表单都完全相同,因此显然这些页面上的其他内容正在影响搜索表单的行为,这在我看来不太可能。有什么想法可以做到这一点,以及如何做?
答案 0 :(得分:1)
是这些行:
function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}
document.onkeypress = stopRKey;
您正在侦听所有按键,并且如果keyCode为13(Enter)(这会阻止默认行为),则返回false,在这种情况下,将提交表单
重要的是,我如何发现问题的地方:
keypress
的一个事件监听器keypress
侦听器,您将看到该侦听器已附加到document
,并告诉您与该侦听器关联的代码的文件和行号。