0

検索ページがあるasp.net Webアプリケーションに取り組んでいます。この検索ページには、約 37 個の検索フィルター コントロールがあります。すべての入力コントロールは、テキスト ボックス、ドロップダウン リスト (ページの読み込み時にデータベースから入力される)、ラジオ ボタン、チェック ボックス リストなど、さまざまなタイプです。ページの右側には、Jquery と Ajax を使用した検索結果が表示されています。ここで、左側の検索フィルター用に .ascx ユーザー コントロールを作成し、すべての検索フィルター コントロールをそのユーザー コントロールに配置します。このページは私にとっては問題なく機能します。唯一の問題は、そのページの [検索のリセット] ボタン (つまり、ascx コントロール内) にあり、そのボタンのクリック イベントですべての検索フィルター コントロールの値をクリアする必要があることです (したくないことを覚えておいてください)。ページをリロードして Jquery を使用します)。解決策として、37 個のコントロールすべての値をデフォルトにリセットするコードを作成する必要があります。

注 : 何らかの理由で aspx ページに更新パネルを配置できないことを覚えておいてください。

アイデアを教えてください。

4

1 に答える 1

2

最小限のコード、つまり入力タイプセレクターを使用できます。$(':input') は、すべてのテキスト ボックス フィールドを選択します。現在のフォームのすべてのコントロールをクリアしたい場合は、使用できる小さなプラグインを作成しました。

$.fn.clearForm = function () {
    return this.each(function () {
        var type = this.type, tag = this.tagName.toLowerCase();
        if (tag == 'form' || tag == 'div') 
            return $(':input', this).clearForm();
        if (type == 'text' || type == 'password' || tag == 'textarea')
            this.value = '';
        else if (type == 'checkbox' || type == 'radio')
            this.checked = false;
        else if (tag == 'select')
            this.selectedIndex = -1;
    });
};

使用法:

$('#divId').clearForm();
$('.div_class').clearForm();
$('form').clearForm();
于 2013-08-08T09:20:10.070 に答える