如何使用jquery从HTML表中获取复选框和文本框值

如何使用jquery从HTML表中获取复选框和文本框值,jquery,html,asp.net-mvc,Jquery,Html,Asp.net Mvc,我有一个动态创建的带有值的HTML表-部分视图 “数量”和“备注”有两个文本框 还有一个复选框 <table style="border:0;width:100%;padding:5px" class="table_style" id="mytable"> <tbody> @for (int i = 0; i < dtServices.Rows.Count - 1; i++) {

我有一个动态创建的带有值的HTML表-部分视图 “数量”和“备注”有两个文本框 还有一个复选框

  <table style="border:0;width:100%;padding:5px" class="table_style" id="mytable">
    <tbody>
             @for (int i = 0; i < dtServices.Rows.Count - 1; i++)
             {           
                    <tr>
                        <td style="text-align:left;vertical-align:top">                
                            @Html.HiddenFor(model => model.ServiceListDetails.UserXId, new { Id = "hduId", Value = userId })
                            @Html.HiddenFor(model => model.ServiceListDetails.SessionXId, new { Id = "hdsId", Value = HttpContext.Current.Session["UserId"] })     
                            @Html.HiddenFor(Model => Model.ServiceListDetails.Id, new { @Id = "hdServiceId",Value = @dtServices.Rows[i]["ServiceId"].ToString() })  </td>

                            @* <td style="text-align:left;vertical-align:top">@dtServices.Rows[i]["ServiceId"].ToString()</td> *@
                            <td style="text-align:left;vertical-align:top">@dtServices.Rows[i]["ServiceName"].ToString()</td>
                            <td style="text-align:left;vertical-align:top">@dtServices.Rows[i]["ServiceUnit"].ToString()</td>

                            <td style="text-align:left;vertical-align:top">@Html.TextBoxFor(Model => Model.ServiceListDetails.ServicelistQuatity, new { @Id = "txtQty_" + @dtServices.Rows[i]["ServiceId"].ToString(), @style = "width:120px" })</td>
                            <td style="text-align:left;vertical-align:top">@Html.TextBoxFor(Model => Model.ServiceListDetails.ServicelistRemarks, new { @Id = "txtRemark_" + @dtServices.Rows[i]["ServiceId"].ToString(), @style = "width:200px" })</td>
                            <td>@Html.CheckBox("assignids")</td>    
                            <td style="text-align:left;vertical-align:top">

                        </td>
                    </tr>
             }
     </tbody>
</table>

@对于(int i=0;imodel.ServiceListDetails.UserXId,新的{Id=“hduId”,Value=userId})
@Html.HiddenFor(model=>model.ServiceListDetails.SessionXId,新的{Id=“hdsId”,Value=HttpContext.Current.Session[“UserId”]})
@Html.HiddenFor(Model=>Model.ServiceListDetails.Id,新的{@Id=“hdServiceId”,Value=@dtServices.Rows[i][“ServiceId”].ToString())
@*@dtServices.Rows[i][“ServiceId”].ToString()*@
@dtServices.Rows[i][“ServiceName”].ToString()
@dtServices.Rows[i][“ServiceUnit”].ToString()
@Html.TextBoxFor(Model=>Model.ServiceListDetails.ServicelistQuatity,新的{@Id=“txtQty”+@dtServices.Rows[i][“ServiceId”].ToString(),@style=“width:120px”})
@Html.TextBoxFor(Model=>Model.ServiceListDetails.servicelistcomments,新的{@Id=“txtmark”+@dtServices.Rows[i][“ServiceId”].ToString(),@style=“width:200px”})
@复选框(“assignid”)
}
我想通过在视图中使用jquery on click of按钮在文本框中获取所选行和相应的值来获取所选行的值

  <input type="button" id="btnPreview" name="Preview" value=" Preview " class="button"/>

我试着用谷歌搜索,结果发现了这一点。但仍不起作用。值为“未定义”

    $("#btnPreview").click(function () {
     var strmsg = "Values = ";
     var rows = $('#mytable tbody >tr');
     var columns;
     for (var i = 0; i < rows.length; i++) {
         columns = $(rows[i]).find('td');
         for (var j = 0; j < columns.length; j++) {

             if ($(columns[j]).find('assignids').is(':checked'))
             {
                 var itemcode = $(columns[j]).find('txtQty_').val();
                 strmsg = strmsg + itemcode;
             }
         }
     }
$(“#btnPreview”)。单击(函数(){
var strmsg=“Values=”;
变量行=$('#mytable tbody>tr');
var列;
对于(变量i=0;i
请任何人帮帮我..我已经被这个问题困扰了一个多星期了:-(((

感谢您的帮助。

您是否尝试过使用jQuery的
eq()
方法来代替
$(行[i])
$(列[j])


这里有一个很好的资源:

当你控制台.log(strmsg)时,你得到了什么?它返回“未定义”…你能显示这个代码的HTML代码结果吗
@HTML.TextBoxFor(Model=>Model.ServiceListDetails.servicelistcomments,新的{@Id=“txtmark”+@dtServices.Rows[i][“ServiceId”].ToString(),@style=“width:200px”}