2016-03-22 14 views
0

私は3つのチェックボックスを持っていますが、チェックされた/チェックされていない値はモデルから設定されています。私はDBを更新するために、各チェックボックスの変更されたイベントのコントローラアクションを呼び出すためにボタンクリックイベントでAjaxポストを使用しています。ここで jQuery Clickイベントチェックボックス変更されたAjaxコール

は、チェックボックスのいずれかのコードである(別にセレクタIDから、それらはすべて同じです):

$(document).ready(function() { 

    //document.getElementById('UpdateButton').onclick = function() { 
    $("UpdateButton").click = function() { 
     $('#NatAm').change(function() { 
      // if ($('#NatAm').is(':checked')) { 
      $.ajax({ 
       //url: '@Url.Action("NativeUpdate", "Transactions")', 
        url: '/Transactions/NativeUpdate', 
        //data: { isNativeUp: true }, 

        type: 'POST', 
        dataType: "json" 
       }); 
       //} 
      }); 

編集(HTML /コードの表示):

@Html.CheckBox("NatAm", (bool)@ViewBag.NativeAm) 
<input name="UpdateButton" id="UpdateButton" type="submit" value="Update" style="margin-left: 15px; margin-top: 3px;" class="btn btn-success" /> 

Iこれを動作させることはできません。ボタンを追加する前に、ajax投稿がうまくいきました。ご協力ありがとうございました!

+0

'$( '#NatAm')。change'は、'クリック 'がトリガされたときに 'change'リスナを添付します..あなたがこれを必要とするのではないかと疑います。 – Rayon

+0

HTMLコードを追加してください。 –

+0

@ZakariaAcharki html/viewコードを追加しました – vmil

答えて

2

クリックハンドラが正しくありません。ボタンのIDを渡し、jQueryのクリックハンドラを使用する必要があります。

$(document).ready(function() { 
    $("#UpdateButton").click(update); 
    $('#NatAm').change(update); 
}); 

function update() { 
    $.ajax({ 
    url: '/Transactions/NativeUpdate', 
    type: 'POST', 
    dataType: 'json' 
    }); 
} 

JSFiddleデモ:あなたはあなたのケースでは存在しません「UpdateButton」タグを探すためにjQueryのを言っているhttps://jsfiddle.net/vLzwuwdo/

+0

私はあなたの助けに感謝します。ハンドラを入れ子にすることは正しい方法ではありませんでした。ただし、チェックボックスに変更があったかどうかに関係なく、コードはajax投稿を起動します。 – vmil

+0

@vmil https://jsfiddle.net/vLzwuwdo/1/ –

2

また巣にハンドラを必要はありません。あなたのボタンにIDを示す#がありません。

グローバルクラスで重複するものを置き換え、同じ文書(NatAmUpdateButton)でユニークである必要があり、この

$(document).ready(function() { 

//document.getElementById('UpdateButton').onclick = function() { 
$("#UpdateButton").click(function() { 
    $('#NatAm').change(function() { 
     // if ($('#NatAm').is(':checked')) { 
     $.ajax({ 
      //url: '@Url.Action("NativeUpdate", "Transactions")', 
       url: '/Transactions/NativeUpdate', 
       //data: { isNativeUp: true }, 

       type: 'POST', 
       dataType: "json" 
      }); 
      //} 
     })); 
+0

セレクタIDの構文が正しくありませんでしたが、それは大きな問題ではありませんでした。 – vmil

1
  1. idを試してみては、最初の問題を解決します。

  2. 最初にトリガするたびに、その要素の新しいイベントが作成されるため、新しいイベントをクリックするたびに新しいイベントが作成され、最初の要素に添付されます。NatAm

希望します。

関連する問題