9

http://ivaynberg.github.io/select2/select2-latest.htmlの Select2 プラグインを使用していますが、問題なく動作しますが、オプション属性から値を取得するのに問題があります。

次のような選択メニューがあります。

<select name="invoice_line[0][vat]" class="vat">
    <option value="20440" data-value="21.00" data-name="20440" selected="selected">21%</option>
    <option value="20441" data-value="6.00" data-name="20441">6%</option>
    <option value="20442" data-value="0.00" data-name="20442">0%</option>
</select>

選択したオプションの属性「data-value」、「data-name」、および「value」の値を取得するにはどうすればよいですか?

4

14 に答える 14

13
obj = $("#dropdown").select2("data")

変数では、のobjすべてを取得します。dataselected node

于 2015-06-01T20:27:59.357 に答える
2

select2 データと jQuery の組み合わせを使用できます。

$("#example").select2('data').element[0].attributes['data-name'].value
于 2016-02-25T10:51:35.990 に答える
1
var return_option = $("#your-select-input-id").select2().find(":selected")[0];    

上記のステートメントは選択オプションを返し、その戻り結果を以下のように配置します。

var name_of_attribute = $( return_option ).attr('name-of-attribute');

これにより、属性値が返されます。

于 2020-07-09T16:48:26.037 に答える
0

select2 をタグ付けモードにすると、役に立ちます。または、以下の同様のコードを試してください。うまくいくかもしれません...

$("$id").select2("val", option);
$("$id").attr("data-name");
于 2013-10-03T09:47:57.810 に答える
0
el = document.getElementsByName("invoice_line[0][vat]")
el.options[[el.selectedIndex]].attributes["data-id"].value
于 2014-04-25T14:10:31.287 に答える
0

選択したアイテムのparams.data.elementオブジェクトには、探しているデータが含まれています。

私が呼び出している選択要素はどこ.fooにあり、アクセスしたいオプション内のデータ属性はdata-bar="some value"次のとおりです。

var $fooSelect = $('.foo');
$fooSelect.on(function (e) {
  console.log($(e.params.data.element).data('bar'));
});
于 2015-11-07T21:51:04.457 に答える
0

問題が解決したことを願っています。ここではselect2()を使用select2()しません。使用すると、次のような他のすべての機能が機能しなくなります。formatNoMatches, on-change....

$("#example").find(":selected").data("id");
于 2014-09-24T08:13:05.950 に答える
0

これは古い投稿であることは知っていますが、同じ問題に苦しんでいました。これは、私と親友の Thys が最終的に取り組んだ解決策です。

<script type="text/javascript">

$(document).ready(function ()
{
    $("#e1").select2();

    $("#e1").change(function () {

        var theID = $("#e1").val();
        $('#staffNr').val(theID);
        $('#staffNr').val();
            //var theID = $(test).select2('data').id;
            var theSelection = $(test).select2('data').text;
            $('#selectedID').text(theID);
            $('#selectedText').text(theSelection);
    });

});

@Html.Hidden("fieldName","staffNr");

これは、モデルに正しく追加されたhtmlフォームの最後の行で、MVC 4ビューで機能しました。私の答えを使用する場合は、賛成票を投じることを忘れないでください:)私はあまり評判がありません...

于 2014-03-05T12:24:45.357 に答える
0

DOM 構造を調べて属性にアクセスできます。

<select id="select_name">
   <option value="20440" data-value="21.00">21%</option>
   <option value="20441" data-value="6.00">6%</option>
   <option value="20442" data-value="0.00">0%</option>
</select>

    $('#select_name option').each(function (index) {
        console.log($(this).attr("data-value"));
    });
于 2018-10-19T15:56:35.987 に答える
0

select要素のIDを設定すると、これが機能します

$('select#your-id').find('option[value="'+$('#your-id').val()+'"]').attr('data-attribute');
于 2019-09-23T12:21:26.273 に答える