【发布时间】:2012-07-06 18:02:10
【问题描述】:
我必须防止在搜索表单上提交空搜索。 表单没有提交按钮,所以我必须阻止输入。
html代码:
表格 1
<form method="get" class="search-form" id="searchform" action="http://example.com" >
<input class="text" name="s" id="s" type="text" />
</form>
表格 2
<form action="http://example.com" class="search-form" method="get">
<input type="text" name="s" class="text">
</form>
Javascript 代码
// Im sure this funcions returns the 2 different forms,
var searchForms = getElementsByClass('search-form');
for(i in searchForms)
{
if (searchForms[i].addEventListener)
{
searchForms[i].addEventListener("submit", function(e)
{
preventSubmit(e); // no problem here
console.log(i) // ALWAYS LOGS 1
});
} //I also implemented the ie code, but not necessary here, is the same as above for addEventListener
}
每次我提交任何表单时,都会在控制台中写入 1, 有什么想法吗?
【问题讨论】:
-
防止提交(e); console.log(this) // 会给你正确的形式
-
那里有很多重复项,例如this one。附带说明一下,当您只需要顺序数字迭代时,不要使用
for-in。这可能会导致问题。 -
i是对索引的引用,而不是对元素的引用。 -
看过节目“新闻广播”吗?
-
这是90年代末在美国的一场演出。通常我讨厌情景喜剧,尤其是那些带有笑声的情景喜剧,但我觉得这部非常好。菲尔·哈特曼(来自 SNL) 直到他去世。无论如何,有一个“SMatthew”插曲,所以我想你的用户名可能是一个参考。
标签: javascript dom-events addeventlistener