別の画面に移動せずにjqueryを使用してフォームを送信する

StackOverflow https://stackoverflow.com/questions/800108

  •  03-07-2019
  •  | 
  •  

質問

フォームを送信してもページがナビゲートされないようにし、ajaxSubmitを使用してコンテンツを送信するようにします。ただし、送信ボタンをクリックしても、フォームのアクション属性のページに移動します。 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