【问题标题】:Two input texts with only one submit allowed两个输入文本,只允许一个提交
【发布时间】: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有一些输入时执行函数,反之亦然。

有什么快速有效的方法可以解决这个问题?

【问题讨论】:

  • 您是否将searchGroupsearchRoom 声明为任何地方的元素?你不能只做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


【解决方案1】:

您需要在长度属性之前添加“值”。所以它应该是 'searchGroup.value.length' 例如。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2019-07-29
    • 2013-11-05
    • 2017-12-09
    • 1970-01-01
    • 2021-11-12
    相关资源
    最近更新 更多