在使用JQuery在MVC中选中复选框时,如何获取下拉列表值

时间:2014-09-10 05:20:51

标签: jquery asp.net-mvc

我是ASP.Net MVC和JQuery的新手。

我想获取包含所选下拉列表值的行详细信息放在一列中。我想将值存储在一个对象中,如customer = {customerId:'',customerName:''}

所以如何使用JQuery做到这一点。

这是我的表结构。

<table style="table-layout: fixed;" class="data-display-table" id="tblFleet">           
            <tbody>
                @foreach (var item in Model)
                {
                    <tr>
                        <td>
                            <input type="checkbox" id="chk-@item.Data"  />
                        </td>

                        <td>
                            @item.CustomerId
                        </td>
                        <td>
                            @item.CustomerName
                        </td>
                        <td>
                            @item.ContactNo
                        </td>                        
                        <td>
                            @{string ddlId = "ddl" + item.CustomerId}

                            @Html.DropDownList(ddlId, (IEnumerable<SelectListItem>)ViewBag.MessageTemplateList, new { @style = "width:140px" })
                        </td>
                    </tr>
                }
            </tbody>
        </table>

3 个答案:

答案 0 :(得分:1)

我确定如果您使用@ Html.CheckBoxFor,它会自动了解复选框是否勾选。

例如,如果您使用带输入标签的a(输入类型=&#34;提交&#34;)

哪个帖子会回传给控制器,只要你传入模型(这是我假设你自己使用CheckBoxFor所做的事情),ASP应该理解它是否已经检查

答案 1 :(得分:0)

尝试此操作:为复选框绑定更改事件,然后找到其父tr,然后在父select内找到tr框。

$(function(){
  $('input[type=checkbox]').change(function(){
     if($(this).is(':checked')
     {
       var parentTR = $(this).closest('tr');
       var selectBox = $(parentTR).find('select');
       var selectBoxValue = $(selectBox).val();
       alert(selectBoxValue);
     }
  });
});

注意 - 选中复选框时,我正在读取选择框值,如果不是您的要求,则可以删除条件。

答案 2 :(得分:0)

$(document).ready(function(){
  $('input[type="checkbox"]').change(function(){
    if($(this).is(':checked'))
    {
      var customerid =  $(this).closest('tr').find('td').eq(1).text();
      var drop =  $(this).closest('tr').find('td').eq(4).find('select option:selected').val();
    }
  });
});