シナリオ:
- 指定された GroupName を持つ複数のラジオ ボタンと
AutoPostBack="true".
- スタイリングの目的で、ラジオ ボタンは js で非表示になり、そのコンテナー (td) のクリックは js を介して処理されます。
- tdをクリックすると、スクリプトは入力要素を「クリック」し、asp.netの自動ポストバックをトリガーします
ポストバックを実行し、サーバーで PageLoad にヒットしますが、分離コードのイベントはトリガーされません。
シナリオ:
AutoPostBack="true".
ポストバックを実行し、サーバーで PageLoad にヒットしますが、分離コードのイベントはトリガーされません。
誰かがこの問題に遭遇するほど不幸な場合に備えて、これを投稿しました。
問題は、この回答https://stackoverflow.com/a/8244315/66372へのコメントで非常に正確に言及されています。
ただし、.click() には 1 つのことがあります。ラジオの選択した値をこのような JavaScript で変更すると、IE で「変更」イベントが発生しません (IE8 を試しました) – Michiel Reyers
それは、asp.net のポストバック イベント処理を台無しにしているようです。したがって、それを取得するには、最初に明示的に選択します。
$(this).find("input").prop("checked", true);
$(this).find("input").click();