asp.net-mvc-3
  • jquery
  • 2012-08-17 75 views 0 likes 
    0

    傳遞值我寫了一碼通,它們由用戶通過點擊BTTN的點擊複選框如何接受通過Ajax

    選擇這些記錄的ID提交下列代碼被稱爲

    $("#button").click(function() { 
    
    var selected = $(".a:checked").map(function() { 
        return this.id; 
    }).get(); 
    
    var urlDistricts = '@Url.Action("selectedId")'; 
    $.ajax({ 
        type: "POST", 
    
        url: urlDistricts, 
        data: { listofid:selected }, 
        success: function() { 
    
        } 
    }); 
    }); 
    

    ,並抓住這個我寫了下面的在我的控制器

    [HttpPost] 
        public ActionResult selectedId(List<int> listofid) 
        { 
         return View(); 
        } 
    

    listofid是卡明空

    +0

    因此,它是一個具有複選框的'id'屬性要送?你可以顯示你的標記嗎? – 2012-08-17 09:13:45

    回答

    2

    設置traditional: true參數:

    $.ajax({ 
        type: "POST", 
        url: urlDistricts, 
        traditional: true, 
        data: { listofid: selected }, 
        success: function (result) { 
    
        } 
    }); 
    

    也有似乎有什麼東西你的代碼錯誤。您正在檢索所選複選框的ID。因此我可以假設您的標記看起來像這樣:

    <input class="a" type="checkbox" id="1" name="id1" /> 
    <input class="a" type="checkbox" id="2" name="id2" /> 
    <input class="a" type="checkbox" id="3" name="id3" /> 
    ... 
    

    我假設你的ID是數字,因爲你正試圖將它們綁定到一個List<int>在你的控制器動作。除了這是無效的HTML。 ID不能以數字開頭。所以,一種可能性是使用HTML5 data-*屬性上的複選框來存儲這些額外的元數據:

    <input class="a" type="checkbox" data-id="1" name="id1" /> 
    <input class="a" type="checkbox" data-id="2" name="id2" /> 
    <input class="a" type="checkbox" data-id="3" name="id3" /> 
    ... 
    

    然後:

    var selected = $(".a:checked").map(function() { 
        return $(this).data('id'); 
    }).get(); 
    
    +1

    THNX一噸!!!!! U GENIUS – priya77 2012-08-17 09:39:11

    相關問題