2011-09-15 19 views
3

我有其中進口數據每隔幾秒鐘,並在表單字段中顯示它的輸入文本字段的形式,讓我們說:如何在javascript中自動提交表單?

<input name="code" id="code" type="text" size="64" maxlength="128" /> 

和一個提交按鈕和我的形式有表格名稱Form1上。 我希望在表單字段中的數據發生變化時立即點擊提交按鈕。 我確實嘗試了以下操作。在頭我也加入follwoing的javascript:

<SCRIPT LANGUAGE="javascript"> 
function send_data() 
{ 
document.form1.submit(); 
} 
</SCRIPT> 

和形式:

<input name="code" id="code" type="text" size="64" maxlength="128" onchange="send_data();" /> 

但didn`t工作..

任何幫助嗎?

感謝

+1

您能顯示'

'標籤嗎?它需要具有'action'屬性才能讓'.submit()'工作。 –

+0

我已經有一個動作,但沒有提交(),這裏 ..有沒有什麼好轉呢? – Momo

+0

警告:避免命名提交按鈕(或任何其他表單元素)name =「submit」,或者submit()在某些瀏覽器中失敗。把它叫做name =「btnSubmit」或其他東西,除了「提交」之外。 – Charlie

回答

3

像這樣的工作:

<form action="#"> 
    <input type="" id="input" /> 
    <button type="submit"></button:> 
</form> 

<script> 
function send_data() { 
    document.forms[0].submit(); 
} 

window.onload = function(){ 
    var input = document.getElementById('input'); 
    input.onchange = send_data; 
} 
</script> 

但我想補充幾點需要注意:

  1. 我假設只有一個頁面上的形式。你會更安全地分配和ID到你的表格,並使用getElementById,並引用而不是document.forms[x]
  2. 更改事件只會發生在你失去對輸入的關注後,我可能想要什麼?只是確保它的預期行爲
  3. 不知道爲什麼你需要這樣做,我會注意到它可能會非常惱人的用戶,因爲提交將觸發新的頁面加載。通過Ajax進行提交可能會更好,以免中斷用戶的瀏覽。如果你這樣做,我強烈推薦一個JS庫來處理這個問題。
+0

另外,一些編碼風格的筆記:使用不顯眼的JS,而不是內聯;使用html5風格的腳本標記(小寫,無語言屬性)。 –

+0

我正在開發一個小型web應用程序,並且無需用戶交互即可自動完成此過程,所以我需要在代碼更改後立即提交此表單。這仍然是開始,因爲我需要提交給xml文件的信息。我希望這能夠澄清我在做什麼以及爲什麼我需要這些。 – Momo

+0

我認爲對於用戶界面的角度來說,通過提交Ajax來提供更好的服務,然後通過模式窗口警告用戶它已成功保存或發生錯誤。我建議讓你的生活更輕鬆,並使用一個庫(jQuery,YUI,Dojo等),它簡化了x瀏覽器問題,ajax處理等。 –