2015-02-06 47 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是目前(在這種情況下是「發射」一詞)。

相關問題