2016-04-18 5 views
1

ラジオボタンが3つあります。私はこのようなロジックを望んでいます:ラジオボタンを押すと、必要なアクションメソッドが呼び出されます。 私は JQueryを使ってそれを行う方法を知らない。他のバリエーションはありますか?ラジオボタンを押してアクションを呼び出す

<h3>Gender:</h3> 

    @Html.RadioButton("Gender", "All", true, new {id = "radioAll"}) 
    @Html.Label("All") 

<br/> 

    @Html.RadioButton("Gender", "Male", false, new {id = "radioMale"}) 
    @Html.Label("Male") 

<br/> 
@Html.RadioButton("Gender", "Female", false, new {id = "radioFemale"}) 
@Html.Label("Female") 

// I tried to find out a decision but couldn't. 
<script> 
    $(document).ready(function() { 
    var url = '@Url.Action("ShowUsers", "Home")'; 

    if ($("#radioMale").attr("checked") === "checked") { 
     $.post(url, 'choice=' + "Male"); 
    } 
}); 
</script> 

答えて

0

これを試してみてください:名=「性別」でラジオボタンのクリックハンドラを登録し、URLにクリックされたラジオボタンの値を渡します。

$(document).ready(function() { 
    var url = '@Url.Action("ShowUsers", "Home")'; 

    $("input:radio[name='Gender']").on("click",function(){ 
     var choice = $(this).val(); 
     $.post(url, {'choice':choice});// data must be passed as key value pair 
    }); 
}); 

More Information for $.post()

+0

VIEW

<div> @Html.RadioButton("male", "male", new { id = "male" }); @Html.RadioButton("female", "female", new { id = "female" }); </div> @section scripts{ <script> var baseUrl = '@Url.Action("ShowUsers", "Home")'; $(document).ready(function(){ $("#male").click(function (e) { $.get(baseUrl, { choice: e.target.id }, function (data) { console.log(data); }); }); $("#female").click(function (e) { $.get(baseUrl, { choice: e.target.id }, function (data) { console.log(data); }); }); }); </script> } 

ACTIONは何のアクションメソッドを呼び出さなければなりませんか?取得または投稿? –

+0

POSTメソッドの場合のみ '$。post '。しかし、データはキー値と同じでなければなりません。 '{choice:choice}'、[this](http://api.jquery.com/jquery.post/)フォームを参照してください。 –

0

以下のようにそれを使用します。

$(document).ready(function() { 
    $('input[type=radio][name=Gender]').change(function() { 
     if (this.value == 'Male') { 
      $.post('@Url.Action("ShowUsers", "Home", new {choice = "Male"})', function(data) { 
       //do something 
      }); 

     } 
     else if (this.value == 'Female') { 
      $.post('@Url.Action("ShowUsers", "Home", new {choice = "Female"})', function(data) { 
       //do something 
      }); 
     } 
     else{ 
      $.post('@Url.Action("ShowUsers", "Home")', function(data) { 
       //do something 
      }); 
     } 
    }); 
}); 
0

あなたがあなたのコードで言っていることであるかのように思え: ドキュメントがロードされたとき、の値をチェック#radioMale。 チェックされている場合(ドキュメントがロードされた直後)、あなたのアクションにPOSTしてください。

ラジオボタンにリスナーを設定し、そのボタンをクリックすると、アクションを呼び出すことができます。

例以下:

public ActionResult ShowUsers(string choice) 
{ 
    return View(); 
} 
関連する問題