ASP.NET MVC JQuery最接近HiddenFor val

时间:2014-09-19 10:25:16

标签: javascript jquery asp.net

我有桌子:

  <table class="table table-bordered">
        @for (var i = 0; i < Model.Count; i++)
        {
            <tr>
                <td width="25px">
                    @if (!Model[i].Letter.Equals(letter))
                    {
                        @Html.DisplayTextFor(m => Model[i].Letter);

                    }
                </td>
                <td width="45px">
                    <div class="button-edit"></div>

                </td>
                <td>
                    @Html.HiddenFor(m => Model[i].Student.Id, new { @class = "mojaklasa" } )

                </td>

                <td>
                    ...
                </td>
                <td>
                  ...
                </td>
                <td>
                   ...
                </td>
            </tr>

        }
    </table>

我怎样才能最接近隐藏价值? 我试过了:

  $(document).ready(function () {
            $('.button-edit').each(function () {
                $(this).mouseenter(function () {
                    $(this).fadeTo(20, 1).css('cursor', 'pointer');
                });
                $(this).mouseleave(function () {
                    $(this).fadeTo(20, 0.5);
                });
                $(this).click(function () {

                    var id;
                    $(this).closest('.mojaklasa').val(id);
                    alert(id);

                });
            });

和$(this).next .... 如果我点击这个按钮,我在警报框中没有任何东西。 我甚至把课程放在里面,但我可以从中得到这个文本。

3 个答案:

答案 0 :(得分:0)

您需要找到父tr,然后尝试查找输入。

$(document).ready(function () {
        $('.button-edit').each(function () {
            $(this).mouseenter(function () {
                $(this).fadeTo(20, 1).css('cursor', 'pointer');
            });
            $(this).mouseleave(function () {
                $(this).fadeTo(20, 0.5);
            });
            $(this).click(function () {
                var id;
                $(this).closest("tr").find('.mojaklasa').val(id);
                alert(id);

            });
        });

答案 1 :(得分:0)

试试这个

$(this).closest('tr').find('.mojaklasa').val(id);

答案 2 :(得分:0)

您需要相对于所点击项目的父级进行搜索,但绝不应在each中连接多个事件。这是毫无意义的,因为jQuery为您管理多个处理程序。

$(function () {
    $('.button-edit').mouseenter(function () {
        $(this).fadeTo(20, 1).css('cursor', 'pointer');
    }).mouseleave(function () {
        $(this).fadeTo(20, 0.5);
    }).click(function () {
        var id = $(this).closest("tr").find('.mojaklasa').val();
        alert(id);
    });
});

这将使用类.button-edit将3个处理程序连接到所有元素。您还需要使用从val()返回的值,而不是使用参数调用val(因为它设置了隐藏值)。