0

かなり大きな入力フォーム (数百のフィールド、在庫アプリケーション) に document.form.submit() 関数を使用しています。ユーザーが一定時間アイドル状態になった後にこれを呼び出しています。ユーザーが入力したデータを保存したいと思います。これを試すと、ページがリロードされます (アクションは #) が、フィールドに入力された新しいテキストは REQUEST に渡されないため、DB に入れることができません。これが発生する根本的な理由はありますか、それとも私のコードが一緒にうまく動作しないのですか (アイドル時間を追跡するためのフォームとライブラリを表示するために EXTJS グリッド ビューを使用しています)? ありがとう、ロバート

4

4 に答える 4

1

私はここに答えを入れたと思います。私が見つけたのは、これを行うことでした: setTimeout('frm.submit();', 2000); ページをリロードしましたが、フォームを送信しませんでした。私がこれをしたとき: frm.submit(); フォームが送信され、データが渡されました。最初の方法がうまくいかなかった理由はわかりませんが、それを知る必要はありません:)

于 2008-09-26T15:01:43.387 に答える
0

サーバーが入力値を無効にしている可能性があります。サーバー上のページが次のようになっているとします。

<form action="/page.cgi">
  ...
  <input name="Fieldx" value=""/>
</form>

フィールドを無効にすると思います。または、これはサーバーアクションが間接的に設定している可能性があります。JSFでは、このようなものです。

<input name="Fieldx" value="#{bean.nullProperty}"/>

サーバーには何があり、ブラウザは何ですか?

于 2008-09-26T14:58:06.140 に答える
0

入力フィールドが含まれているかどうかを確認するために、HTML 投稿要求をキャッチしようとします。そうであれば、サーバーに問題があります。

ただ、おっしゃる通り、ブラウザの JavaScript DOM の扱い方に矛盾があるからだと思います。これは、フォームの送信ボタンを省略しても機能する場合に当てはまります。

于 2008-09-26T15:01:16.180 に答える
0

オブジェクトのsubmitメソッドはHTMLFormElement、ユーザーが送信ボタンをクリックしたかのように、フォームを送信するだけです。そのためaction、フォームの属性が に設定されている#場合、フォーム データが同じページに送信されるため、ページが更新されたように見えます。

ただし、アクション属性を別のページに設定しても、それが行われるのは奇妙です。

フォームのmethod属性は または に設定されていますgetpost?

于 2008-09-26T15:02:56.127 に答える