1

AutoPostBackがTrueに設定され、サーバー側で処理されているRadioButtonListがあります。

<asp:radiobuttonlist ID="myRBL" OnSelectedIndexChanged="MyRBL_SelectedIndexChanged"
    RepeatDirection="Horizontal" AutoPostBack="True" runat="server">
    <asp:ListItem Selected="True">Choice 1</asp:ListItem>
    <asp:ListItem>Choice 2</asp:ListItem>
</asp:radiobuttonlist>

OnClick属性を使用してJavaScript関数を追加することにより、これを「段階的に強化」したいと思います。OnClick = "myFunction();"を追加した後、ブラウザでJavaScriptが無効になっている場合、サーバーサイドコードは呼び出されなくなりました。

誰かがこれを回避する方法を持っていますか(IPostBackEventHandlerを実装する必要がありますか、それとも何かが足りませんか)?

更新: 2010年8月26日午後4時31分太平洋

どうやら、このコントロールがJavaScriptを無効にした状態で送信できないASP.NET。誰かがこれに対する詳細な解決策を持っていますか?

4

2 に答える 2

1

ユーザーがJavaScriptを有効にしているかどうかを確認する唯一の方法は、クライアント側からです。

その場合の最善の策は、サーバーコードではなく、クライアント側で関数を追加することです。jQueryはこれを非常にうまく処理し、次のようになります。

$(function() {
  $('input[type=radio]').click(myFunction);
});

jqueryを使用していない場合はdocument.getElementById()、クリックハンドラーを割り当てることができます。

このように、クライアントにjavascriptがない場合、ラジオボタンは完全に変更されません。

于 2010-08-26T22:21:05.463 に答える
1

AutoPostBackは、JavaScriptを使用して、ラジオボタンをクリックした後にポストバックします。onclick属性を設定すると、この動作が上書きされるため、クリックイベントにイベントハンドラーを追加する必要があります。

私の知る限り、プレーンJavaScriptでこれを行う簡単な方法はないので、jQueryを使用することをお勧めします。

$('#radioButtonId').click(myFunction);
于 2010-08-26T22:23:44.180 に答える