0

バックグラウンドでajaxを使用してフォームを送信したい。私は試した:

<div class="form-horizontal" id="form">
    <label for="name" class="control-label">Username</label>
    <div class="controls">
        <span id="name_input"><input type="text" name="name" id="medium" class='input-medium input-square'></span>
        <span class="help-inline" id = "ajax_load"></span>
    </div>
    <div class="form-actions">
        <button class="btn btn-red5" onclick="resolve()">Login</button>
        <input type="reset" class='btn btn-danger' value="Reset">
    </div>                                                  
</div>

そしてJavascript:

<script type="text/javascript">
    var resolve = function () {
            jAlert('test', 'test');
                $('#ajax_load').html('<a href="#" class="btn btn-mini btn-square tip" title="Reloading"><img src="templates/img/ajax-loader.gif" alt=""></a>');
                $.ajax( {
                    url : 'plugin.php?plugin=test',
                    type : 'post',          
                    data: $("#form").serialize(),
                    success : function( resp ) {
                        if(resp.ajax_success == false) {

                        } else {
                            jAlert('test', 'test');
                        }
                    }
                });     
    };
</script>

アラートが表示されますが、フォームの送信がありません。Livehttpヘッダーで確認しました。

フォームを送信しないのはなぜですか?

4

2 に答える 2

2

フォームを送信しない場合は、フォームで#formはないためです。

変化する:

<div class="form-horizontal" id="form">

に:

<form class="form-horizontal" id="form">

resp.ajax_successをに置き換える必要がありrespます。plugin.php?plugin=testURLの応答も教えてください。


<form>[送信]ボタンをクリックしたときにを送信したくない場合は、次のように関数return false;の最後にを追加します。resolve

var resolve = function () {
    jAlert('test', 'test');
    $('#ajax_load').html('<a href="#" class="btn btn-mini btn-square tip" title="Reloading"><img src="templates/img/ajax-loader.gif" alt=""></a>');
    $.ajax( {
        url: 'plugin.php?plugin=test',
        type: 'post',          
        data: $("#form").serialize(),
        success: function( resp ) {
            if(resp.ajax_success == false) {

            } else {
                jAlert('test', 'test');
            }
        }
    });
    return false;
};
于 2012-11-18T16:54:01.060 に答える
1

divからデータをシリアル化するフォームを使用していないためです。

<div class="form-horizontal" id="form">

フォームを形成しない

する必要があります

<form class="form-horizontal" id="form">
于 2012-11-18T16:55:46.953 に答える