Скрыть неактивные или отключенные элементы в списке - PullRequest
1 голос
/ 14 марта 2019

Я борюсь со следующей проблемой.

На моем WordPress-сайте у меня есть выпадающие списки фильтров

1 .ТИП АВТОМОБИЛЯ (кабриолет, купе и т. Д.)


2 .MAKE (Mercedes, BMW и т. Д.)


3. MODEL (CLK, X5 и т. Д.)


так, при выборе ТИП АВТОМОБИЛЯ из списка FIRST ,

появляется соответствующий MAKES в SECOND для выбранного элемента,

и в списке THIRD появится модель, которая отвечает MAKE ( Mercedes-CLK , BMW-X5 ).

Теперь дело в том, что Makes или Models, которые отключены или неактивны, не будут отображаться на DESKTOP, но на MOBILE они появляются, хотя все еще неактивны.

1-й вопрос: Как я могу скрыть отключенныхэлементы из списка на MOBILE?

2-й вопрос: Могу ли я отключить MAKES и MODELS, если не выбран VEHICLE TYPE?

Здесь ниже вы можете увидеть код бэкенда для списка.

var car_dealer = {};

(function ($) {/ * * Удаляет URL формы из пустых параметров при submit * / $ ('. Vehicle-search-form'). Submit (function () {$ (this) .find ("input [type = 'number']") .filter (function () {return ($ (this) .attr ('min') == $ (this) .attr ('value') ||$ (this) .attr ('max') == $ (this) .attr ('value'));}). attr ('disabled', 'disabled');

    $(this).find( "input[type='search']" ).filter(function(){
        return ! $(this).val();
    }).attr( 'disabled', 'disabled' );

    $(this).find( "select" ).filter(function(){
        return ! ( $(this).val() && $(this).val() != '-1');
    }).attr( 'disabled', 'disabled' );


})

/*
 * Disables all models that do not fit the selected make
 */
$('#car_dealer_field_vehicle_type').on('change',function(){
    var makeName = $(this).find( 'option:selected' ).attr( 'data-type' );

    $('#car_dealer_field_make option')
    // first, disable all options
    .attr( 'disabled', 'disabled' )
    // activate the corresponding models
    .filter( '[data-type="' + $.trim( makeName ) + '"], [value="-1"]' ).removeAttr( 'disabled' )
    // remove previous value
    .parent().val( -1 );
});
$('#car_dealer_field_make').on('change',function(){
    var makeName = $(this).find( 'option:selected' ).attr( 'data-make' );

    $('#car_dealer_field_model option')
    // first, disable all options
    .attr( 'disabled', 'disabled' )
    // activate the corresponding models
    .filter( '[data-make="' + $.trim( makeName ) + '"], [value="-1"]' ).removeAttr( 'disabled' )
    // remove previous value
    .parent().val( -1 );
});

} (jQuery));

Я благодарен и с нетерпением жду вашего ответа!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...