2

シナリオ:

  1. 指定された GroupName を持つ複数のラジオ ボタンとAutoPostBack="true".
  2. スタイリングの目的で、ラジオ ボタンは js で非表示になり、そのコンテナー (td) のクリックは js を介して処理されます。
  3. tdをクリックすると、スクリプトは入力要素を「クリック」し、asp.netの自動ポストバックをトリガーします

ポストバックを実行し、サーバーで PageLoad にヒットしますが、分離コードのイベントはトリガーされません。

4

1 に答える 1

2

誰かがこの問題に遭遇するほど不幸な場合に備えて、これを投稿しました。

問題は、この回答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();
于 2012-12-11T19:39:51.333 に答える