如何使用jQuery读取EditorFor生成的数组

时间:2011-02-16 07:59:08

标签: asp.net asp.net-mvc asp.net-mvc-3

我对我正在使用的技术很困惑。我正在使用EditorFor来显示值。

要生成的值的代码如下:

    <tr>
                <td>@Html.HiddenFor(m => m.ID)@Html.CheckBoxFor(m => m.Authorized)</td>
                <td>@Html.DisplayFor(m => m.ID)</td>
                <td>@Html.DisplayFor(m=>m.UserName) </td>
           </tr>

我的目标是检查Checkbox,我需要发布ID值如下:

 $("input:checkbox").live('click', function () {
            if ($(this).attr('checked')) {

                var ID = $(this).parent().parent().find('#ID').val();

                $.ajax({
                    type: "POST",
                    url: '<%=Url.Action("Edit","Employee") %>',
                    data: JSON.stringify(ID),
                    contentType: "application/json; charset=utf-8",
                    dataType: "html",
                    success: function () {
                    },
                    error: function (request, status, error) {
                        alert("Error: " & request.responseText);
                    }
                });
            }            });

但是,var ID = $(this).parent()。parent()。find('#ID')。val();未定义。如何从以下生成的HTML中读取ID值:

  <td><input id="Employee_0__ID" name="Employee[0].ID" type="hidden" value="1100" /><input id="Employee_0__Authorized" name="Employee[0].Authorized" type="checkbox" value="true" /><input name="Employee[0].Authorized" type="hidden" value="false" /></td>
<td>user </td>

2 个答案:

答案 0 :(得分:0)

不确定我明白你要找的是什么价值?

会这样。

var ID = $(this).parent().parent().find('#ID').attr('value');

或者

var ID = $(this).parent().parent().find('#ID').attr('id');

工作?

答案 1 :(得分:0)

对于指定的HTML,这应该足够了,因为隐藏元素是DOM中复选框的前一个兄弟

var ID = $(this).prev().val();