【问题标题】:Javascript autosubmit form when specific string detected in textarea在 textarea 中检测到特定字符串时 Javascript 自动提交表单
【发布时间】:2015-02-06 00:34:06
【问题描述】:

希望是一个新手 JS 问题。 (我搜索并找到了一些类似的,但不是这种情况......)好的,我有一个像这样的简单表格:

<form method="POST" action="foo.php">
<textarea name="inputBox123"></textarea>
<input type="submit" value="Go" name="B1" />
</form>

当然,表单有一个普通的提交按钮。但是,除此之外,我还想要一个像“okaygo”(或任何类似字符串)这样的代码字,这样,如果 textarea 包含这个词(如果它是输入的、粘贴的等),那么表格会自动提交,就像按下按钮一样。

所以,我想我需要一些方法来持续监控文本区域的内容,并根据该字符串是否存在来评估它——如果存在则提交。谁能告诉我如何做到这一点,或者至少为我指明正确的方向?

(只是为了任何想知道原因的人......我和一些使用扫描仪输入表单数据的人一起工作。通常他们将数据扫描到表单中并单击提交按钮。但是,他们也说他们可以节省时间如果他们不必总是放下扫描仪并单击提交按钮。所以,我告诉他们,也许我可以在屏幕上显示一个条形码,编码为一些特定的字符串,如 12345678 或 OKGONOW,或其他。所以,这个想法是,他们扫描他们的东西,扫描条形码,字符串出现在表单中,它被Javascript检测到,然后表单提交,他们甚至不必触摸键盘/鼠标。无论如何,这就是想法。 )

【问题讨论】:

    标签: javascript forms textarea submit


    【解决方案1】:

    您可以在代码中轻松提交表单。首先给你的表单一个id:

    <form method="POST" id="myform" action="foo.php">
    <textarea name="inputBox123"></textarea>
    <input type="submit" value="Go" name="B1" />
    </form>
    

    接下来在你的输入上添加一个 onchange 事件:

    <input type="submit" value="Go" name="B1" onchange="myFunction(this); />
    

    然后在你的函数中检查每次事件触发时的值:

    function myFunction(input)
    { 
         if(input.value == 'okaygo')
         {
             // get the form by id
             var form = document.getElementById('myform');
    
            // submit the form
            form.submit();
         }
    }
    

    根据您的要求,您还可以通过检查比较来检查输入并忽略大写或小写,并通过更改 if 语句来降低被比较的两个值:

    if(input.value.toLowerCase() == 'okaygo')
    {
        // same as above get form by id and submit it.
    }
    

    如果您需要检查按键输入 - 然后使用“onkeyup”事件而不是 onchange 事件。

    【讨论】:

    • 谢谢,我会试试这样的...所以,我假设它类似于“if (textareaID.value == 'word') etc.” (或者,实际上,甚至不是“if value =" 子句,而是 indexOf,因为这个特殊的代码字符串只是整个 textarea 的一小部分。但是,无论如何,我明白你在这里得到了什么&希望可以混合一个解决方案(当我得到它的工作时会发布一个)。-JD
    • 是的,取决于 ob 要求 indexOf 也可以工作
    【解决方案2】:

    谢谢,伙计。这帮助我指出了我需要去的地方。这是一种方法,以防有人在寻找相同的东西。表格是这样的:

    <form method="POST" id="myform" action="foo.php">
    <textarea name="inputBox123" id="myTextarea" oninput="myFunction(this);"></textarea>
    <input type="submit" value="Go" name="B1" />
    </form>
    

    ... Javascript 会是这样的:

    function myFunction(val) {
    
        var testThis = document.getElementById("myTextarea").value;
    
        if ( testThis.indexOf("launch") > -1 ) {
    
            // get the form by id
            var form = document.getElementById('myform');
    
            // submit the form
            form.submit();
    
        }
    
    }
    

    通过这种方式,它会监控文本区域,并在存在特定 vgalue 时确实提交表单(在本例中为“启动”一词)。

    【讨论】:

      猜你喜欢
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多