2015-02-06 45 views
2

希望有点新手JS问题。 (我搜索&发现了一些类似的人排序的,但不太这种情况... ...)好吧,我有一个简单的形式是这样的:Javascript autosubmit表单在textarea中检测到特定字符串时

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

当然,形式有一个正常的提交按钮。但是,除此之外,我希望有一个类似“okaygo”(或任何这样的字符串)的代码字,以便如果textarea包含此词(如果它是键入,粘贴等),则表单会自动提交,就像按下按钮一样。

所以,我想我需要一些方法来持续监视文本区域的内容,并根据该字符串是否存在进行评估 - 如果这样提交。任何人都可以告诉我该怎么做,或者至少让我指向正确的方向?

(仅供任何人想知道为什么......我工作时有些人使用扫描仪输入表单数据,通常他们将数据扫描到表单中并单击提交按钮,但他们也表示可以保存如果他们并不总是必须放下扫描仪并点击提交按钮,那么我告诉他们,也许我可以拿起屏幕上的条形码来编码一些特定的字符串,如12345678或okaygonow,或其他。 ,他们的想法是,他们扫描他们的东西,扫描条形码,字符串出现在表单中,它被Javascript检测到,然后表单提交&他们甚至不必触摸键盘/鼠标。无论如何,这是主意)

回答

0

您可以在代码中轻松提交表单。首先给您形式的ID:

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

接下来你输入添加onchange事件:

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

     // submit the form 
     form.submit(); 
    } 
} 

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

然后在函数每一次事件触发检查值根据您的要求,您还可以检查输入并忽略大写或小写,方法是检查比较结果,并通过更改if语句来比较两个值的比较结果:

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

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

+0

谢谢,会给这样的尝试......澄清:在本例中,我会将'myFunction'绑定到* textarea *,对吗?所以,我认为它会像“if(textareaID.value =='word')等。” (或者,实际上,甚至不是一个“if value =”子句,也可能是一个indexOf,因为这个特殊的代码字符串只是整个textarea的一小部分。但无论如何,我看到你在这里&希望能够把一个解决方案混为一谈(并且在我得到它的时候会发布一个解决方案)。-JD – 2015-02-06 01:08:00

+0

是根据转播需要的indexOf能否正常工作以及 – 2015-02-06 01:42:30

0

谢谢,伙计。这有助于指出我需要去的地方。这里有一种方法,以防有人在寻找同样的东西。该形式是这样的:

<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(); 

    } 

} 

通过这种方式,它可以监控textarea的确实提交表单当特定vgalue是目前(在这种情况下是“发射”一词)。

相关问题