select2 на мобиле и ipad не одинаковое поведение - PullRequest
0 голосов
/ 22 февраля 2019

У нас есть последняя версия select2 и мы используем ее на многих страницах.У нас есть одна страница, где вы выбираете клиента, а затем следующая страница select2 заполняется его свойствами.

Если у них есть только 1 свойство, оно выбирает его автоматически.

Он по-прежнему отлично работает на рабочем столе, но если вы используете его на ipad или мобильном устройстве, он не позволит вам выбрать свойство, если есть только 1 (Это позволит вам, если есть более одного результата)он также показывает заголовок раскрывающегося списка и первый выбранный элемент на мобильном телефоне, но не на рабочем столе и т. д.

Все началось, когда мы обновились до последней версии Bootstrap4.

Вот JS:

customerSelector.select2({
    theme: 'bootstrap4'
});

customerSelector.change(function () {
    $('.select2-selection__rendered').removeAttr('title');

    var id = $(this).val();
    $.post('/customers/getAssetsList', {id: id}, function (r) {
        var assetSelector = $("#asset");
        assetSelector.html(r.html);
        assetSelector.change();
        assetSelector.trigger('change');
        if (assetSelector.children('option').length === 2) {
            $('#asset option:eq(1)').attr('selected', 'selected');
        }
        var contractSelector = $("#contract");
        contractSelector.html(r.html2);
        contractSelector.change();
        //contractSelector.trigger('change');
        $('#services option').prop('selected', false).change();
        $("#services").select2();
        $('.select2-selection__rendered').removeAttr('title');
    }, "json");

    return false;
});

/*
assetSelector.select2({
    theme:'bootstrap4',
    minimumResultsForSearch: 10
});
*/

assetSelector.change(function () {
    $('.select2-selection__rendered').removeAttr('title');

    var id = $(this).val();

    $.post('/customers/getAssetSrvFullList', {id: id}, function (r) {
        $('.select2-selection__rendered').removeAttr('title');

        var contract = $("#contract").val();
        if (contract == 0) {
            var lineid = parseInt($('#invtbl tr.invline:last').attr('id')) + 1;

            $('#invtbl').find('.invline').each(function () {
                if ($(this).attr("id") != 0) $("#" + $(this).attr("id")).empty().remove();
            });

            for (key in r.srv) {
                lineid++;
                var customid = $("#customer").val();
                $.post('/finances/invoices/newLinePriceOnly', {
                    id: lineid,
                    customer: customid,
                    srv: r.srv[key],
                    bs4: 1
                }, function (r) {
                    $('#invtbl tr.invline:last').after(r.line);
                    $('.qty').trigger("keyup");
                }, "json");
            }
        }

        $("#location").val(r.loc);
        $("#propnotes").val(r.notes);
        autosize.update($("#location"));
        autosize.update($("#propnotes"));
        $('.select2-selection__rendered').removeAttr('title');
    }, "json");

    return false;
});
...