0

「primaryTag」と「primaryCategory」という 2 つの選択ボックスがあります。

primaryCategory は primaryTag に依存します

「タグ」と「カテゴリ」と呼ばれる 2 つの複数選択オプションもあります。

「primaryTag」が変更されると、「タグ」の選択が解除されます。

「primaryCategory」が変更されると、「categories」の複数選択オプションが選択解除されます。primaryTags の変更イベントの後に「primaryCategory」が変更された場合でも、「categories」の複数選択をリセットする必要があります。

次のコードがあります。

$('document').ready(function(){
    $("#primaryTag").change(function () {
        tagId = $("#{{ admin.uniqId }}_primaryTag option:selected").val();
        $("#primaryCategory").val("option:first");
        $("#tags *").attr("selected", false);
    });

    $("#primaryCategory").change(function () {
        $("#categories *").attr("selected", false);
    });

});

primaryTagprimaryCategoryはセレクトボックスです。 tagsおよびcategories複数選択ボックスです。

primaryTag を変更すると、primaryCategory 選択ボックスに必要に応じて最初のオプションのデフォルト値が入力されます。ただし、カテゴリの複数選択ボックスもリセットします (すべてのオプションの選択を解除します)。そして、これは起こっていません。どうすればこれを達成できますか?

ここにHTMLがあります

4

3 に答える 3

1

$('document')でなければなりません$(document)。その後、デフォルトのプライマリ カテゴリを覚えておいてください。プライマリタグの変更時に、デフォルトのプライマリ カテゴリを設定し、タグ オプションをリセットします。プライマリカテゴリの変更時に、カテゴリ オプションをリセットします。

$(document).ready(function() {
    var iDefault = $("#primaryCategory").val();

    $("#primaryTag").change(function () {
        $("#primaryCategory").val(iDefault);
        $("#tags option").attr("selected", false);
    });

    $("#primaryCategory").change(function () {
        $("#categories option").attr("selected", false);
    });
});

この例も参照してください。

===更新===

プライマリ カテゴリの最初のオプションを設定する場合は、次のように置き換えます。

$(document).ready(function() {
    $("#primaryTag").change(function () {
        $("#primaryCategory option:first").attr("selected", true);
        $("#tags option").attr("selected", false);
    });

    $("#primaryCategory").change(function () {
        $("#categories option").attr("selected", false);
    });
});

この例も参照してください。

===更新===

プライマリ カテゴリがリセットされた後にカテゴリがリセットされるようにするには、最初のバージョンを次のように置き換えます。

$(document).ready(function() {
    var iDefault = $("#primaryCategory").val();

    $("#primaryTag").change(function () {
        $("#primaryCategory").val(iDefault);
        $("#primaryCategory").change();
        $("#tags option").attr("selected", false);
    });

    $("#primaryCategory").change(function () {
        $("#categories option").attr("selected", false);
    });
});

この更新された例も参照してください。

于 2012-04-16T06:26:27.277 に答える
0

onclick 関数を使用できます。

<element onclick="newfunction()"></element>
于 2012-04-16T06:13:15.170 に答える
0

jQuery を使用して複数選択ボックスをクリアするには、基本的に 2 つの方法があります。

$("#my_select_box").val(null);

また

$("#my_select_box option").attr("selected",false);

1 つ目は、select 要素の値を何も変更しません。2 番目は、select 要素のすべてのオプションの selected 属性を削除します。

あなたのコードの効果は次のとおりだと思います:

$("#my_select_box").attr("selected",false);

#my_select_box実際の選択要素であるため、これは機能しません。select 要素自体の属性を削除しselectedても効果はありません。その属性はその中のオプションに対してのみ意味を持つためです。

Firebug、またはクロムに組み込まれている開発者ツールを実際に試す必要があります。これらは、javascript および jQuery コードのデバッグに非常に役立ちます。

于 2012-04-16T06:30:52.560 に答える