8414


ASP.NET WebForms（.NET2.0）でWebアプリケーションを開発しています。  
そこそこ規模の大きなページで、formのsubmit（ポストバック）の発生する操作を素早く何度も繰り返すと、まれにformの最後にあるHiddenFieldコントロール（実体はinput[type=hidden]）の値が送信されないことがあります。  
「送信されない」については、IEのF12デバッガのネットワークタブで、「要求本文」に確かにそのHiddenFieldのパラメータが含まれていないことを確認しました。  
（もちろん通常はパラメータが含まれていることも確認済みです）

ここで仮説として、「submitの実行時点でまだレンダリングされていない要素があると、そこに含まれるパラメータは送信されない」という可能性を考えたのですが、これはありえますか？  
それとも、「submitの実行は、そのform要素全体のレンダリングが完了するまで保留する」ようなHTMLの仕様が定義されていたりするため、ありえないのでしょうか？


CC BY-SA 3.0
2015-03-26T02:01:01.163
8404
2015-03-26T09:54:24.957
2015-03-26T05:15:59.177
2238
8078
question
html asp.net
HTMLの読み込み途中にsubmitすることによるパラメータの欠落はありえるか？


あり得ます。  
HTMLのソースコードがフォームの途中までしかクライアント側に到達してなくても、その時点でDOMが作られてレンダリングされてユーザは操作ができます。対処方法はいろいろあるかと思います。

  * サーバ側のチェックで何とかする
  * submitイベントを捕まえて全部揃っているかチェックする
  * デフォルトで送信できないようにしておいて、</form>の直前か直後あたりに<script>を書いて送信できる状態にする


CC BY-SA 3.0
2015-03-26T04:54:37.370
8414
2015-03-26T09:54:24.957
2015-03-26T09:54:24.957
3475
3475
8404
answer


ググっただけですが[ASP.NETのHiddenFieldの落とし穴](http://blog.livedoor.jp/tukuruyo/archives/52063806.html)というブログ記事を見つけました。ここに書かれているようにdisabled及びIEの挙動が影響していませんか？


CC BY-SA 3.0
2015-03-26T05:13:41.530
8416
2015-03-26T05:13:41.530
4236
8404
answer