0

Ajax.BeginFormを使用してWebページのデータを更新しています(以下のコードに従って)。とにかく、送信ボタンを押すのを待つ代わりに、キーを押すたびにバックエンドサーバーを押すことができますか?

このように、「a」と入力すると、「a」に対してクエリが実行され、すべてのdb結果が表示されます。次に、「b」と入力すると、「ab」などのリストがフィルタリングされます。

送信ボタンを使用した現在のコード

 <%using (Ajax.BeginForm("GetPeople", "Contacts", new AjaxOptions { UpdateTargetId = "Contacts", LoadingElementId = "updating", OnSuccess = "done" }))
  { %>

<fieldset style="text-align:left">
<legend>Contacts Search</legend>
<table>
<tr><td>First Name:</td><td> <input style="width:300px" type="text" name="FirstPattern" /></td></tr>
<tr><td>Last Name: </td><td><input style="width:300px" type="text" name="LastPattern" /></td></tr>
<tr><td><input type="submit" value="Search" name="submit" /></td></tr>
</table>
</fieldset>
<% } %>
4

2 に答える 2

2

jQueryオートコンプリートプラグインを確認することをお勧めします。それはあなたが求めていることを正確に実行し、それが作成するクエリに応答し、クエリパラメータに基づいて一致するセットを返すアクションを持っていることだけを必要とします。高度な設定が可能で、十分にテストされています。あなたの場合、パラメータを追加する機能を利用して、名前や名前などの複数の検索条件を使用できるようにする必要があります。たとえば、メインのオートコンプリートとして姓を使用し、名フィールドの文字をクエリの追加値として送信します。

于 2009-10-18T16:45:47.573 に答える
0

テキストボックスに次の情報があり、キーが押されているかどうかを確認してから、バックエンドに移動して郊外のリストを取得します。

    $("#suburb").keyup(function(evt) {
        var suburb = jQuery.trim($("#suburb").val());

        if (suburb.length < 3)
            return;

        $("#suburbList").empty();
        $("#suburbList").attr("style", "position:absolute; top:230px; width:150px; left:100px; padding:5px 5px 5px 5px; background-color:#f0f0f0; border:1px solid black;");

        $.post("/Home/GetSuburbList", { suburb: suburb },
            function(suburbs) {
                $.each(suburbs, function(i, thisSuburb) {

                    $("#suburbList").append($('<a/>')
                                .attr("href", "#")
                                .click(function(evt) { $("#suburb").val(thisSuburb.name); $("#suburbList").empty(); $("#suburbList").attr("style", "position:absolute; top:230px; width:150px; left:100px; padding:5px 5px 5px 5px; background-color:#f0f0f0; border:1px solid black; display:none;"); })
                                .html(thisSuburb.name + "<br/>"));

                });
            }, "json");

    });
于 2009-10-18T22:08:54.717 に答える