1

フォームにラジオボタンのセットがあります。そのチェックされた状態は、フォームの後の多数の他の入力の状​​態を決定します。ユーザーがフォームを下に移動して値を変更した後に戻ってきた場合、フォームの大部分をクリアする必要があり、ユーザーは多くの値を再入力する必要があります。これが起こることを彼らに警告したいと思います。チェックされたプロップが変更される前に発生するイベントはありますか? または、クリック時に確認をスローし、キャンセルした場合は値を元に戻す必要がありますか? 明確にするために、checked プロパティが変更されたに.click() が起動することを知っています。ユーザーがクリックした後、checked プロパティが変更される前に発生するイベントはありますか?

4

1 に答える 1

4

以下はうまくいくようです:

<input type="radio" name="test" onclick="if(!confirm('Are you sure?'))event.preventDefault();" />

またはJQueryを使用して:

$(document).ready(function(){
    $("input[type='radio'][name='test']").click(function(e){
        if(!confirm('Are you sure?')) e.preventDefault();
    });
});

JQuery セレクターは、おそらく$("[name='test']"). 「test」をラジオ ボタン グループの名前に変更するだけです。また、このイベントが何よりも先に発生することを確認したい場合は、mousedownイベントを検討することをお勧めします。

于 2013-04-05T22:27:01.010 に答える