2

JSONオブジェクトを返すサーブレットに対してJQueryを使用してAjax呼び出しを行おうとしています。JSPページにフォームがあります。最初はフォームからデータを取得する方法がわからなかったので、.serializeを見つけました。

私は次のJavaScriptを持っています:

$(document).ready(function() {
    $("#submit").click(function blabla() {
        var formData = $('form').serialize();
        $.ajax({
            type: "POST",
            url: "/ArchiveSearch/Search",
            dataType: "json",
            data: formData,
        });
    });
});

情報は次のフォームから取得されます。

<form method= post">
            <div class="searchCiteria">
                <div id="searchValueBlock1">
                        <div><span class="label">Case ID:</span><input type="text" name="messagecaseid"  size="25"/></div>
                        <div><span class="label">Onderwerp:</span><input type="text" name="messagesubject" size="25" /></div>
                        <div><span class="label">Afzender:</span><input type="text" name="messagesender"  size="25"/></div>
                        <div><span class="label">Ontvanger:</span><input type="text" name="messagereceiver"  size="25"/></div>
                </div>

                <div id= "searchValueBlock2">
                    <div><span class="label">Datum:</span><input type="text" name="date1"  size="25"/></div>
                    <div><span class="label"></span><input type="text" name="date2"  size="25"/></div>

                    <div class="submit">
                        <input type="submit" value="Search"> 
                    </div>
                </div>
            </div>
            </form>

フォームでactionパラメータを使用すると、サーブレットは適切に応答します。しかし、Ajaxの呼び出しを機能させることができないようです。

私は何が間違っているのですか?

4

2 に答える 2

1

成功パラメータをajax関数に追加する必要があります

$.ajax({
            type: "POST",
            url: "/ArchiveSearch/Search",
            dataType: "json",
            data: formData,
 success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});

于 2012-06-04T10:31:35.767 に答える
1

送信ボタンのデフォルトの動作はフォームに対するもので、フォーム上の属性POSTのURLにユーザーをリダイレクトします。actionアクション属性がない場合(必要があります...)、ページがリロードされます。falseページが再読み込みされないようにするには、関数の最後に戻ってデフォルトの動作を防ぐ必要があります$("#submit").click

于 2012-06-04T10:35:36.287 に答える