按钮点击

时间:2017-07-31 21:01:00

标签: javascript c# jquery asp.net-mvc

我想发一个ajax请求 当我按下表单按钮时,我需要获取表单本身 我的代码是

$(document).ready(function() {
        $(document).on('click', '.finalEdit', function (e) {
            e.preventDefault();
            var form = $(this).closest('form');
            $.ajax({
                data: form.serialize(),
                url: form.attr('action'),
                type: "POST",
                dataType: "html",
                success: function (result) {
                    // feel free to execute any code 
                    // in the success callback
                    $('#divToRefresh').html(result);
                },
                error: function (result) {
                alert("Failed");
            }
            })

            return false;
        });

$(this).closest('form')在页面中获取另一个表单我不知道为什么

这是我正在寻找的形式

<tr hidden="hidden">
            @using (Html.BeginForm("Edit", "Home", FormMethod.Post, new { @class = "Edit-form" }))
            {
                @Html.ValidationSummary(true)
                <td>
                    @Html.HiddenFor(model => model.supplier.SupplierID, new { @Value = item.SupplierID })
                </td>
                <td>
                    @Html.TextBoxFor(model => model.supplier.SupplierName, new { @Value = item.SupplierName })
                </td>
                <td>
                    <input type="submit" value="Edit" class="finalEdit"/>
                </td>



            }
        </tr>

2 个答案:

答案 0 :(得分:2)

如果.finalEdit按钮在表单标签内,则可以使用this.form获取元素所属的表单。然后,您可以将其包装在$()中,以获取表单元素为var form = $(this.form);的jQuery对象。

如果找不到表单,请确保标签正确嵌套和关闭。另外,请确保输入内容没有form attribute

答案 1 :(得分:0)

$(this).closest('form')没有获得另一种形式。它实际上没有得到任何形式。

我不知道为什么.closest('form')在那种情况下不起作用

无论如何这行代码对我有用

var form = $(this).parent().parent().children(":first");