Jquery:从js代码调用submit函数绕过AJAX

时间:2014-03-03 14:06:58

标签: jquery ajax forms

我有以下对话框和表格

<div id="dlg" class="easyui-dialog" style="width:300px;height:220px;padding:10px 20px"
        closed="true" buttons="#dlg-buttons">
    <div class="ftitle"></div>
    <form id="fm" method="post">
        <div class="fitem">
            <label>Position Title:</label>
        <input name="position" class="easyui-validatebox" required="true">
    </div>
</form>
</div>
<div id="dlg-buttons">
    <a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="savePosition()" id="submitButton">Save</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">Cancel</a>
</div>

我希望用户能够按Enter,或者单击提交按钮以提交表单。运行提交的js是:

    function savePosition(){
        $('#fm').form('submit',{

            url: url,
            onSubmit: function(){
                return $(this).form('validate');
            },
            success: function(result){
                var result = eval('('+result+')');
                if (result.errorMsg){
                    $.messager.show({
                        title: 'Error',
                        msg: result.errorMsg
                    });
                } else {
                    $('#dlg').dialog('close');        // close the dialog
                    $('#dg').datagrid('reload');    // reload the user data
                }
            }
        });
    }

为了让enter按钮起作用,我决定使用下面的代码,但是当调用savePosition();函数时,它会将表单提交为标准表单(将我带到提交页)。如何将表单作为AJAX表单提交(就像单击按钮时一样)?我也尝试使用$('#submitButton').Click(),但这似乎提交了表单,但数据库没有更新。

$(function() {
    $('#fm').submit(function( jqEvt ) {
        jqEvt.preventDefault();
        savePosition();
    });
});

1 个答案:

答案 0 :(得分:0)

触发点击事件应该可以解决问题。你是用小写'c'试了吗?

$('#submitButton').click(); //Change from .Click to .click