2

www.redfin.comの検索ページにあるものと同様の機能を作成したいと考えています。ユーザーがテキスト ボックスをクリックすると、検索フォームが開きます。

MVC と jQuery を使用していますが、その方法がわかりません。Dialog プラグインを使用してみましたが、何らかの理由でダイアログが 1 回しか開きません。

<input id="txtSearch" type="text" />
<div id="searchForm" title="Dialog Title">I am a dialog</div>

$("#txtSearch").click(function() {
    // Show form
    $("#searchForm").dialog();
});

ただし、通常の Web サイトでは、ダイアログは開きません。

$("#txtSearch").click(function() {
        // Show form
        $("#searchForm").dialog();
    });

フォーカスまたはクリックを使用しても同じ効果があるようです。ダイアログは 1 回だけ開きます。それを閉じてテキストボックスをもう一度クリックすると、ダイアログが表示されません。

このタスクを達成するために正しいアプローチを使用していますか? サンプルはありますか?提案を歓迎します。

ダイアログはタイトルを作成するため、最良の選択ではない可能性があります。ajax経由でフォームを投稿し、同じページに結果を表示したいので、他に何が使えるのだろうと思っていました。

ありがとう

4

2 に答える 2

1

そして、イベントバインディングをドキュメント対応スクリプトでラップしていることを確認したい(すでにこれを行っているかもしれませんが、念のためにサンプルコードに含まれていなかったため、指摘しています)

$(document).ready(function() {
    $("#txtSearch").click(function() {
        // Show form
        $("#searchForm").dialog();
    });
});

編集

$("#searchForm").dialog(); ダイアログを検索フォームに登録するだけだと思います

ダイアログを表示および非表示にするには、ダイアログの show() および hide() を呼び出す必要があると思います。以前にjqModalを使用したことがあり、この方法で行う必要がありました

$(document).ready(function() {
    $("#searchForm").jqm({modal: true}); //register this div as a modal

    $("#txtSearch").click(function() {
        // Show form
        $("#searchForm").jqmShow(); //show div
    });
});

後で、モーダルを閉じるには、呼び出します

$("#searchForm").jqmHide();
于 2009-03-26T21:52:13.287 に答える
0

おそらく、focusイベントの代わりにイベントを使用する必要がありclickます。

ダイアログに何を使用するかについては、チェックアウトすることをお勧めしBeautyTipsます。そのページの「トリガーのカスタマイズ」の例を確認してください。まさにあなたがやろうとしていることです。

于 2009-03-26T21:48:30.893 に答える