0

我的网站上有两个表单,一个电子邮件注册框和一个搜索框(都在侧栏上)。我有一个问题,如果有人试图在搜索框上按 Enter 键来搜索网站,它总是打开电子邮件注册表单。换句话说,站点搜索表单将不会打开。

我不知道如何解决这个问题,有什么想法吗?

这是我在文本小部件中用于显示表单的代码。

<div class="signupForm"><form action="http://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open('http://feedburner.google.com/fb/a/mailverify?uri=noahsdad', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
   <p>
       <input type="text" name="email" onblur="if (this.value == '') {this.value = 'Enter your email address';}" onfocus="if (this.value == 'Enter your email address') {this.value = '';}" value="Enter your email address"/>
   </p>
   <input type="hidden" value="noahsdad" name="uri"/><input type="hidden" name="loc" value="en_US"/>
   <input type="submit" value="Subscribe" /></div>
4

3 回答 3

1

您需要为页面上的第一个元素添加一个</form>标签<form>(第 506 行)。这个问题是因为这两个表单被视为一个表单,并且点击“enter”会导致它们都提交。

如果你把它们分开,每一个都会是一个不同的表单,然后点击“enter”只会提交用户当前正在使用的表单。

于 2012-05-18T13:42:09.797 回答
1

这可能是由于搜索表单嵌套在电子邮件注册表单中。

表单不应嵌套在 HTML 中。

您可以使用 W3 Validator 验证此问题:

http://validator.w3.org/check?uri=http%3A%2F%2Fnoahsdad.com&charset=%28detect+automatically%29&doctype=Inline&group=0

于 2012-05-18T13:46:28.557 回答
0

“Enter”键是任何 HTML 表单的默认提交键。在您的情况下会发生这种情况,因为您将两个字段放在同一个 HTML 表单中。尝试将它们分开。我不相信,有必要使用 javascript 代码(尽管你可以这样做而不是分开表格)来捕捉 enter 键的按下。优雅的解决方案是使用不同的形式,因为它们将对应不同的动作。

于 2012-05-18T13:42:21.197 回答