JQGrid在EDIT弹出窗口中单击ENTER

时间:2011-09-24 16:15:40

标签: ajax asp.net-mvc-3 jquery jqgrid

我有一个表格,我在jqgrid中使用添加/编辑弹出窗口

@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { id = "formId" }))
{
//...
}

当我点击表格打开的行时。如果我按文本框并单击ENTER,则此表单提交。它提交为常规的帖子请求,而不是使用jqgrid。但如果我单击“保存”按钮,它将按要求运行。

buttons: {
                    'Save': function () {

                        if ($('#formId').valid()) {

                            $.ajax({
                                type: 'POST',
                                url: '@Url.Action( "Action", "Controller" )',
                                data: $('#formId').serialize(),
                                success: function (json) {
                                    $("#grid").trigger("reloadGrid");
                                },
                                error: function (e) {
                                    alert("Unable to save." + e);
                                },
                                dataType: "application/JSON"
                            });

                            $("#divForm").dialog('close');
                        }
                    },

但是当我点击ENTER时,我想要点击保存按钮。

1 个答案:

答案 0 :(得分:0)

尝试订阅表单的提交事件:

<div id="formContainer">
    @using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { id = "formId" }))
    {
        ...
    }
</div>

然后:

$('#formContainer').delegate('#formId', 'submit', function (evt) {
    evt.preventDefault();
    if ($(this).valid()) {
        $.ajax({
            type: this.method,
            url: this.action,
            data: $(this).serialize(),
            success: function (json) {
                $('#grid').trigger("reloadGrid");
            },
            error: function (e) {
                alert("Unable to save." + e);
            },
        });
    }
});

现在在Save按钮点击强制表单提交:

'Save': function () {
    $('#formId').submit();
}

但可能最好使用表单的提交按钮提交表单。