1

私のコードは次のとおりです。

form.submit();//synchronized submit, not asynchronous,the form is not a html form but created by javascript
some codes here;//Is this line executed, or it sometimes executed sometimes not

2行目にいくつかの統計コード(サーバーにhttpリクエストを送信)があり、実際にいくつかのデータを取得しています。統計データと予想値の間には大きなギャップがあるため、2行目が常に実行されるとは思えません。

4

1 に答える 1

4

フォームが送信時に何をするかによって異なります。

  • フォームが正常に送信された場合、コード実行される可能性があります。通常のフォーム送信は、ブラウザをaction属性で定義されたURLにリダイレクトします。コードは実行される可能性がありますが、ページはすでに終了する準備をしているため、コードが何を実行するかがわからない場合がありますform.submit()

  • フォームが送信され、JavaScript(おそらくイベントハンドラー)によってキャッチされた場合、後のコードは実行form.submit() できますが、そのイベントハンドラーの動作によって異なります。ハンドラーが通常のフォーム送信を妨げない場合、状況は最初の状況と同じです。ハンドラーが通常のフォーム送信を妨げている場合は、実行できます。

return falseそのフォームのハンドラーを作成して、および/またはなどの手法を使用して通常のフォーム送信を防止event.preventDefault()し、そこでコードを実行することをお勧めします。

于 2012-08-14T01:51:36.590 に答える