【发布时间】:2017-08-29 14:13:31
【问题描述】:
我目前有这两个具有不同搜索功能的输入文本字段,我正在尝试使其在 onclick -event 之后只能通过 1 个搜索功能,具体取决于哪个输入字段为空。
HTML;
<form onsubmit="return false" id="searchForm">
<input type="text" id="searchGroup" placeholder="Search group" autocomplete="off">
<input type="text"id="searchRoom" placeholder="Search room" autocomplete="off">
</form>
<div id="navBtns">
<button type="button" class="navForward" id="plus" onclick="forward();"></button>
<button type="button" class="navBackward" id="minus" onclick="backward();"></button>
</div>
这是我在 JavaScript 中尝试过的,但我无法让它工作;
function forward() {
if (searchGroup.length === 0) {
roomForward();
} else if (searchRoom.length === 0) {
groupForward();
}
}
function backward() {
if (searchGroup.length === 0) {
roomBackward();
} else if (searchRoom.length === 0) {
groupBackward();
}
}
所以,想法是当文本输入searchGroup为空时,它只在searchRoom有一些输入时执行函数,反之亦然。
有什么快速有效的方法可以解决这个问题?
【问题讨论】:
-
您是否将
searchGroup和searchRoom声明为任何地方的元素?你不能只做id.property,你需要使用id获取元素,然后做element.property。此外,您不需要元素的长度,而是需要其值的长度:element.value.length。 -
您需要使用
searchGroup.value.length。 -
@Santi
You can't just do id.property实际上您可以在大多数浏览器中,因为所有带有id的元素都作为属性放置在window下。虽然我同意这不是很好的做法 -
@RoryMcCrossan 哇,我不知道我以前怎么不知道这一点。谢谢!
-
@RoryMcCrossan 正要说同样的话。并同意这不是浏览器的一个很好的功能,基本上 ID 标签会影响全局..
标签: javascript jquery html forms input