1132

いくつかのオプションがあるselectフィールドがあります。options次に、jQueryを使用してそれらの1つを選択する必要があります。しかし、選択する必要valueのあるものだけがわかっている場合、どうすればそれを行うことができますか?option

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

<div class="id_100">
  <select>
    <option value="val1">Val 1</option>
    <option value="val2">Val 2</option>
    <option value="val3">Val 3</option>
  </select>
</div>

値のあるオプションを選択する必要がありますval2。これはどのように行うことができますか?

これがデモページです:http: //jsfiddle.net/9Stxb/

4

26 に答える 26

1793

options タグに入る必要のない簡単な方法があります。

$("div.id_100 select").val("val2");

このjQueryメソッドをチェックしてください。

: 上記のコードは、変更イベントをトリガーしません。完全な互換性を得るには、次のように呼び出す必要があります。

$("div.id_100 select").val("val2").change();
于 2013-06-07T08:49:48.027 に答える
508

値が「val2」のオプションを選択するには:

$('.id_100 option[value=val2]').attr('selected','selected');
于 2012-11-12T12:17:20.977 に答える
64

最初にすべての選択を解除し、選択可能なオプションをフィルタリングします。

$('.id_100 option')
     .removeAttr('selected')
     .filter('[value=val1]')
         .attr('selected', true)
于 2012-11-12T12:20:20.443 に答える
44
<select name="contribution_status_id" id="contribution_status_id" class="form-select">
    <option value="1">Completed</option>
    <option value="2">Pending</option>
    <option value="3">Cancelled</option>
    <option value="4">Failed</option>
    <option value="5">In Progress</option>
    <option value="6">Overdue</option>
    <option value="7">Refunded</option>

値による保留ステータスへの設定

   $('#contribution_status_id').val("2");
于 2013-12-05T17:27:27.037 に答える
38

私にとっては、次のことが仕事をしました

$("div.id_100").val("val2").change();
于 2016-07-27T13:27:55.063 に答える
29

val()の設定を選択するのが一番簡単だと思いますが、以下で確認できます。jQueryで選択タグとオプションタグを処理する方法を参照してください。オプションの詳細については、

$('div.id_100  option[value="val2"]').prop("selected", true);

$('id_100').val('val2');

最適化されていませんが、場合によっては次のロジックも役立ちます。

$('.id_100 option').each(function() {
    if($(this).val() == 'val2') {
        $(this).prop("selected", true);
    }
});
于 2013-09-07T22:40:49.160 に答える
18

属性セレクターを使用して任意の属性とその値を[attributename=optionalvalue]選択できるため、オプションを選択して選択した属性を設定できます。

$("div.id_100 > select > option[value=" + value + "]").prop("selected",true);

value選択したい値はどこにありますか。

以前に選択した値を削除する必要がある場合は、これが複数回使用されている場合のように、最初に選択した属性を削除するように少し変更する必要があります

$("div.id_100 option:selected").prop("selected",false);
$("div.id_100 option[value=" + value + "]")
        .prop("selected",true);
于 2012-11-12T12:22:16.320 に答える
18

これを考えすぎる理由はありません。プロパティにアクセスして設定するだけです。それでおしまい。

さて、いくつかの基本的な dom: ストレートな JavaScript でこれを行っていた場合、次のようになります。

window.document.getElementById('my_stuff').selectedIndex = 4;

しかし、あなたはそのままの JavaScript でそれを行っているのではなく、jQuery でそれを行っています。jQuery では、.prop() 関数を使用してプロパティを設定する必要があるため、次のようにします。

$("#my_stuff").prop('selectedIndex', 4);

とにかく、IDが一意であることを確認してください。そうしないと、なぜこれがうまくいかなかったのかと頭を壁にぶつけることになるでしょう。

于 2018-03-03T09:41:03.363 に答える
8

使用する:

$("div.id_100 > select > option[value=" + value + "]").attr("selected",true);

これは私にとってはうまくいきます。ファンシーボックスの更新フォームで値を解析するためにこのコードを使用しています。app.js からの完全なソースは次のとおりです。

jQuery(".fancybox-btn-upd").click(function(){
    var ebid = jQuery(this).val();

    jQuery.ajax({
        type: "POST",
        url: js_base_url+"manajemen_cms/get_ebook_data",
        data: {ebookid:ebid},
        success: function(transport){
            var re = jQuery.parseJSON(transport);
            jQuery("#upd-kategori option[value="+re['kategori']+"]").attr('selected',true);
            document.getElementById("upd-nama").setAttribute('value',re['judul']);
            document.getElementById("upd-penerbit").setAttribute('value',re['penerbit']);
            document.getElementById("upd-tahun").setAttribute('value',re['terbit']);
            document.getElementById("upd-halaman").setAttribute('value',re['halaman']);
            document.getElementById("upd-bahasa").setAttribute('value',re['bahasa']);

            var content = jQuery("#fancybox-form-upd").html();
            jQuery.fancybox({
                type: 'ajax',
                prevEffect: 'none',
                nextEffect: 'none',
                closeBtn: true,
                content: content,
                helpers: {
                    title: {
                        type: 'inside'
                    }
                }
            });
        }
    });
});

そして私のPHPコードは次のとおりです。

function get_ebook_data()
{
    $ebkid = $this->input->post('ebookid');
    $rs = $this->mod_manajemen->get_ebook_detail($ebkid);
    $hasil['id'] = $ebkid;
    foreach ($rs as $row) {
        $hasil['judul'] = $row->ebook_judul;
        $hasil['kategori'] = $row->ebook_cat_id;
        $hasil['penerbit'] = $row->ebook_penerbit;
        $hasil['terbit'] = $row->ebook_terbit;
        $hasil['halaman'] = $row->ebook_halaman;
        $hasil['bahasa'] = $row->ebook_bahasa;
        $hasil['format'] = $row->ebook_format;
    }
    $this->output->set_output(json_encode($hasil));
}
于 2014-03-16T08:42:25.500 に答える
7

.attr() は、古いバージョンの jQuery では機能しないことがありますが、.prop()を使用できます。

$('select#ddlCountry option').each(function () {
    if ($(this).text().toLowerCase() == co.toLowerCase()) {
        $(this).prop('selected','selected');
        return;
    }
});
于 2016-09-08T04:40:50.273 に答える
3

古い投稿ですが、jQuery プラグインのように機能する単純な関数が 1 つあります。

    $.fn.selectOption = function(val){
        this.val(val)
        .find('option')
        .removeAttr('selected')
        .parent()
        .find('option[value="'+ val +'"]')
        .attr('selected', 'selected')
        .parent()
        .trigger('change');

        return this;
    };

簡単に次のようなことができます:

$('.id_100').selectOption('val2');

これを使用する理由は、選択したサテマントをクロスブラウザーがサポートされているDOMに変更し、変更をトリガーしてそれをキャッチできるためです。

基本的にヒューマンアクションシミュレーションです。

于 2018-01-16T09:58:59.843 に答える
3

選択した値を変更するための解決策はたくさんありますが、私の課題は OP とは少し異なっていたため、どれもうまくいきませんでした。この値に基づいて別の選択ドロップダウンをフィルタリングする必要があります。

ほとんどの人は$("div.id_100").val("val2").change();、それを彼らのために働かせていました。これを に少し変更する必要がありました$("div#idOfDiv select").val("val2").trigger("change")

これでも十分ではありませんでした。また、ドキュメントが読み込まれるのを待つ必要がありました。私の完全なコードは次のようになります。

$(document).ready(function() {
    $("div#idOfDiv select").val("val2").trigger("change");
});

これが私と同じ課題を抱えている人に役立つことを願っています!

于 2021-03-08T01:24:42.627 に答える
3

これを試して。シンプルでありながら効果的な javaScript + jQuery という致命的な組み合わせ。

コンポーネントの選択:

<select id="YourSelectComponentID">
            <option value="0">Apple</option>
            <option value="2">Banana</option>
            <option value="3">Cat</option>
            <option value="4">Dolphin</option>
</select>

選択 :

document.getElementById("YourSelectComponentID").value = 4;

これで、オプション 4 が選択されます。これを行うと、デフォルトで開始時に値を選択できます。

$(function(){
   document.getElementById("YourSelectComponentID").value = 4;
});

または、単純な関数を作成してその中に行を入れ、anyEvent で関数を呼び出してオプションを選択します

jQuery と JavaScript を組み合わせると魔法のように....

于 2017-11-20T17:13:10.000 に答える