2016-09-12 2 views
0

Я создал код, который позволяет пользователю выбрать город в поле выбора «Город», затем будет выбран второй флажок «Площадь» и показать только области в этом городе, поэтому пользователь может выбрать несколько областей в одном городе. Поле выбора «Область» позволяет выбрать несколько вариантов. Так что этот код работает на Firefox, Chrome, но не на Iphone (Safari), где показаны все районы во всех городах (не фильтрованное):Выберите несколько с динамически обновляемыми параметрами, которые не работают на Safari - iphone

$('#property_city_submit9').change(function(){ 

    var city = $(this).val(); 
    if(city !== 'all'){ 

    $('#property_area_submit9 option:selected').removeAttr("selected"); 
    $('#property_area_submit9 option').css('display', 'none'); 
    $('#property_area_submit9 option[data-parentcity="'+city+'"]').css('display', 'block'); 

    }else { 

    $('#property_area_submit9 option:selected').removeAttr("selected"); 
    $('#property_area_submit9 option').css('display', 'none'); 
    $('#property_area_submit9 option[value="all"]').css('display', 'block'); 
    } 
});  
  • property_city_submit9 - "Город" выберите поле
  • property_area_submit9 - " Area "(для множественного выбора), его параметры имеют атрибут data-parentcity - название города, к которому принадлежит область.

Не понимаю, метод css() не работает в Safari? Цените всю свою помощь.

+0

Спасибо, chimmi за помощью. :) –

ответ

0

Эй, я думаю, я нашел решение для своей проблемы. Вслед за этой статьей https://stackoverflow.com/a/15025961/6822695, нет возможности играть с методом css с iphone, поэтому я изменил код с помощью append() и remove(). Код выглядит следующим образом:

$('#property_city_submit9').change(function(){ 

    var city = $(this).val(); 
    $('#property_area_submit9 option:selected').removeAttr("selected"); 
    $('#property_area_submit9').find('option').remove(); 
    var addopti ='<option data-parentcity="*" value="all"></option>'; 

    if(city !== 'all'){ 


    $('.area_stock_info li').each(function(){   

    if($(this).attr('data-city') == city){ 

     addopti +='<option value="'+$(this).attr('data-value')+'" data-parentcity="'+$(this).attr('data-city')+'">'+$(this).attr('data-value')+'</option>'; 

    }  
    }); 

    $('#property_area_submit9').append(addopti); 

    }});