2016-06-23 5 views
-3

自動投稿document.myForm.submit();は、一度呼び出すとうまくいきますが、何度も呼び出すようにしていますが、1回目の試行の後では、もう一度エラーが出ます。Uncaught Error: document.myForm.submit();コードは100%私が二度以上電話するまで。これは正常ですか?どうすればそれを避けることができますか?未知のエラー:document.myForm.submit();関数ではありません - 2回目の呼び出し後

研究は、私はPhoneGapの/コルドバを使用しています最も可能性が高い私のフォーム入力はケース

されていない、提出命名されていることを示しています

function sendData()//Gets called once per second 
{ 
    document.body.insertAdjacentHTML("afterend", 

    '<form name=\"myForm\" action=\"http://www.mywebsite.com/formProcess.php\" method=\"POST\" target=\"submission.frame\">' + 
    '<input type=\"text\" name = "uuid" value=\"' + String(uuid) + '\">' + 
    '<input type=\"text\" name = "directionX" value=\"' + String(directionX) + '\">' + 
    '<input type=\"text\" name = "directionY" value=\"' + String(directionY) + '\">' + 
    '<iframe name=\"submission.frame\" hidden></iframe>'        + 
    '</form>' 

    ); 

    document.myForm.submit(); 
} 

サーバーPHP

<?php 
//Do bunch of stuff 
?> 
<form name="myForm" action="<?php echo $current_file; ?>" method="POST"> 
UUID  <input type="text" name="uuid">  <br> 
directionX <input type="text" name="directionX"><br> 
directionY <input type="text" name="directionY"><br> 
<input type="submit" value="Send"> 
</form> 
+0

2回目に 'document.myForm.submit()'をどのように呼び出すのですか? –

+0

コードはどこですか? –

+0

問題を明らかにする検証可能なコードスニペットを投稿してください。 – Damon

答えて

1

最初に呼び出すと、ドキュメントにフォームが追加され、document.myFormがフォーム要素になります。

二ドキュメントにに(同じ名前付き!)別のフォームを追加あなたはそれを呼び出す時、その後、document.myFormがを含む(配列のようなオブジェクトである)HTML要素のコレクションですフォーム。

コレクションはsubmitメソッドを持っていません。その中の2つの要素があります。

あなたが...提出する方法があるかどうかを確認するためにテストし、それが失敗した場合、コレクション内の最後の要素をつかむことで、そのために

if (document.myForm.submit) { 
    document.myForm.submit(); 
} else { 
    document.myForm[document.myForm.length - 1].submit(); 
} 

を補うことができます...しかし、あなたがオフに良いだろうように、それは本当に見えますフォームとiframeをドキュメントに投げるのではなく、use XMLHttpRequestに切り替えるだけです。これらはMicrosoftが90年代後半にOutlook Web App用にXMLHttpRequestを思いつく前に使用していたものです。

+0

完全に動作します、ありがとう。私はコードをアップロードする必要があるとは思わなかったので、あいまいな質問に残念です。私はPHP/MySQLを学び始め 、私は、フォームを実現ずさんな方法ですが、しかし、視覚的な学習:) 一つ質問をしてください与える:XMLHttpRequestがたくさん速くフォームを提出するよりも?私が毎秒フォーム20を提出しようとするとクラッシュしますが、1秒あたり1回はOKです。私はそれで速くそれをすることができるだろうか? - 基本的に、すべてのコードは、ゲームのX座標とY座標を送信します。 –

+1

それほど高速ではありません。それはより堅牢です。 WebSocketを調べたいと思うかもしれません。 – Quentin

+0

ありがとう –

関連する問題