2011-09-15 8 views
3

は、私がデータを秒おきにインポートし、フォームフィールドに表示のテキスト入力フィールドを持つフォーム、私たちは言わせてありますjavascriptでフォームを自動提出するには?

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

と送信ボタンを、私のフォームは、フォーム名の、Form1を持っています。 フォームフィールドのデータが変更されるとすぐに[送信]ボタンをクリックします。 私は次のことをやろうとしました。

<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の..

すべてのヘルプヘッダーでは、私はfollwoing JavaScriptを追加しましたか?このような

+1

」タグを表示できますか。 '.submit()'を動作させるには 'action'属性が必要です。 –

+0

私はすでにアクションを持っていますが、submit()はできません。ここで。 – Momo

+0

注意:一部のブラウザでは、送信ボタン(またはその他のフォーム要素)の名前は「submit」にするか、submit()が失敗します。それを名前= "btnSubmit"か何か、 "submit"以外のものと呼んでください。 – 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をフォームに追加し、document.forms[x]の代わりにそれを参照するとgetElementByIdを使用します。
  2. 変更イベントは、入力に集中できなくなった場合にのみ発生します。ただ期待通りの動作を確認してください。
  3. これを行う必要があることがわからなければ、投稿が新しいページの読み込みを引き起こすため、ユーザーにとって非常に迷惑になる可能性があります。ユーザーのブラウジングを混乱させないように、ajax経由で投稿を行う方が良いかもしれません。これを行うには、これを処理するJSライブラリを強くお勧めします。
+0

また、いくつかのコーディングスタイルノート:インラインではなく控えめなJSを使用します。 html5スタイルのスクリプトタグを使用します(小文字で、言語属性はありません)。 –

+0

私は小さなwebappを開発しています。ユーザーの操作を必要とせずにプロセスを自動化するために、コードが変更されるとすぐにこのフォームを提出する必要があります。 xmlファイルに送信された情報が必要なので、これはまだ始まりです。私はこれが私が何をしているのか、そしてなぜこれが必要なのかを明確にしたいと思います。 – Momo

+0

私はUIの観点から考えると、そのサブミットをAjaxにすることでより効果的になり、ユーザーにモーダル・ウィンドウを介して正常に保存されたかエラーが発生したことを警告します。あなたの生活を楽にし、xブラウザの問題、ajax処理などを簡略化するライブラリ(jQuery、YUI、Dojoなど)を使用することをお勧めします。 –

関連する問題