doPostBack 関数について
ASP.NET で作成された Web ページ内の __doPostBack 関数についての質問です。
以下のコード(抜粋、左端は行数)において、以下の点が不明ですのでお教え願います。
Q1. 11 行目の記述は何のために必要なのでしょうか?
もし、9 行目での theForm オブジェクトの取得が失敗した場合に、11 行目が必要になる
というのであれば、最初から 11 行目のみ書いておけばよいと思うのですが。
Q2. 14 行目の if 文の条件について、どちらか一方だけでは何故ダメなのでしょうか?
1 <form name="aspnetForm" method="post" action="Details.aspx" id="aspnetForm">
2 <div>
3 <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
4 <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
5 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="(略)" />
6 </div>
7 <script type="text/javascript">
8 <!--
9 var theForm = document.forms['aspnetForm'];
10 if (!theForm) {
11 theForm = document.aspnetForm;
12 }
13 function __doPostBack(eventTarget, eventArgument) {
14 if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
15 theForm.__EVENTTARGET.value = eventTarget;
16 theForm.__EVENTARGUMENT.value = eventArgument;
17 theForm.submit();
18 }
19 }
20 // -->
21 </script>