1

Ruby on Rails 3.2.2 と jquery-rails-2.0.2 を使用しています。私のフォームには多くのラジオボタンがあり、ユーザーが確認メッセージを受け入れない場合は、前に選択したラジオボタンを確認したいと思います。私は次のようなものを実装できると思います

<%= form.radio_button(:name_1, 'value_1', { :onclick => ('selectRadio(this)') }) %>
<%= form.radio_button(:name_2, 'value_2', { :onclick => ('selectRadio(this)') }) %>
<%= # Other radio buttons %>
<%= form.radio_button(:name_n, 'value_n', { :onclick => ('selectRadio(this)') }) %>


<script type="text/javascript">
  function selectRadio(radiobutton) {
    var confirm_message = confirm('Are you sure?');

    if (confirm_message) {
      # Check the selected radio button.
    } else {
      # Re-check the previous selected radio button.
    }
  }
</script>

...しかし、「以前に選択したラジオボタンを再確認する」という解決策はありません。出来ますか?もしそうなら、それを作る方法は?

4

3 に答える 3

3

これを行うには、次のコード ブロックを使用できます。

検討中のすべてのラジオボタンには、次のような共通のクラスがあると想定していますradios

var prev = $(".radios:checked");

$(".radios").change(function() {
    if(confirm('Are you sure?')){ 
           prev = $(this); 
    }else{
           prev.prop('checked','checked');   
    }    
});​

働くフィドル

参照: $.change $.prop

于 2012-06-02T06:00:52.690 に答える
0

解決策の 1 つは、チェック時にユーザーの選択を保存し、必要に応じて元に戻すことです。

于 2012-06-02T05:33:39.137 に答える
0

以下を試してください...

<script type="text/javascript">
   // first get checked radio button where myform is your form in which radiobuttons reside  
   var lastRadio = $("#myform input[type='radio']:checked");
   function selectRadio(radiobutton) {
      var confirm_message = confirm('Are you sure?');
      if (confirm_message) {
         lastRadio = $(radiobutton);
         # Check the selected radio button.
      } else {
         lastRadio.attr('checked',true);
         # Re-check the previous selected radio button.
      }
    }
</script>
于 2012-06-02T05:56:55.850 に答える