我正在努力使表单提交不会导致页面导航并使用ajaxSubmit提交内容。但是当我单击提交按钮时,它仍然导航到表单的action属性中的页面。继承人javascript:

var options = {
    success: processLogin
};
$('#loginform').submit(function() {
    $(this).ajaxSubmit(options);
    return false;
});

并表示形式:

<form id='loginform' action='login.php' method='post'>
    <table id='logintable'>
        <tr>
            <td>Room:</td>
            <td><input id='roomname' type='text' name='roomname' /></td>
        </tr>
        <tr>
            <td>Nickname:</td>
            <td><input id='nickname' type='text' name='nickname' /></td>
        </tr>
        <tr>
            <td colspan='2' class='center'><input type='submit' value='Submit' /></td>
    </table>
</form>
有帮助吗?

解决方案

使用 event.preventDefault()

$('#loginform').submit(function(e) {
    e.preventDefault();
    $(this).ajaxSubmit(options);
});

其他提示

另一种选择是将输入html标记更改为<input id="save" type="Button" value="submit" />,它为您提供了一个除了提供javascript钩子之外什么都不做的按钮。

使用以下javascript来ajax提交表单

$("#save").click(function() {
    $("#loginform").ajaxSubmit();
}

在执行此操作时,您无法按Enter键提交表单。你可以通过下面的jquery来解决这个问题:

$("input").keypress(function(e) {
    if (e.which == 13) {
        $("#save").click();
    }
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top