не работают скрипты на планшете и телефоне.
Есть скрипт:
$("#sdelka").click(function() {
if($( "#sdelka" ).val() == 0){
$( ".hd1").css('display', 'block');
$( ".hd2").css('display', 'none');
$('#pp').attr('disabled',false);
}else{
$('#pp').attr('disabled',false);
$( ".hd2").css('display', 'block');
$( ".hd1").css('display', 'none');
}
});
это зависимость двух select
<div class="col-md-3 col-sm-6 col-xs-12">
<select id="sdelka" class="sel" name="rent_buy">
<option value=""><?php echo Yii::t('common', 'Sale/Rent')?></option>
<option value="0"><?php echo Yii::t('common', 'Rent')?></option>
<option value="1"><?php echo Yii::t('common', 'Sale')?></option>
</select>
</div>
<div class="col-md-3 col-sm-6 col-xs-12">
<select disabled="disabled" id="pp" class="sel" name="type">
<option value=""><?php echo Yii::t('common', 'Property type')?></option>
<option class="hd1" value="1"><?php echo Yii::t('common', 'Villa/Home')?></option>
<option class="hd1" value="2"><?php echo Yii::t('common', 'Condo/Apartments')?></option>
<option class="hd1" value="3"><?php echo Yii::t('common', 'Bungalo')?></option>
<option class="hd2" value="4"><?php echo Yii::t('common', 'Villa/Home')?></option>
<option class="hd2" value="5"><?php echo Yii::t('common', 'Condo/Apartments')?></option>
<option class="hd2" value="6"><?php echo Yii::t('common', 'Project')?></option>
<option class="hd2" value="7"><?php echo Yii::t('common', 'Commercial')?></option>
<option class="hd2" value="8"><?php echo Yii::t('common', 'Land')?></option>
</select>
</div>
кто что подскажет? на компьютере все работает. рабочий пример тут: http://site.artem55555p.ru/ru/main/index вот эти два select http://c2n.me/3Mo4c1n |
Во-первых так:
$("#sdelka").change(function() {
var v = +this.value;
$( ".hd1").css('display', ['block', 'none'][v]);
$( ".hd2").css('display', ['none', 'block'][v]);
//$('#pp').attr('disabled',false);$('#pp').prop('disabled', false); зачем это задавать, если и в противном случае тоже false, ошибки нет, может так:
$('#pp').prop('disabled', v); //то есть все таки изменяет состояние?
});
Во-вторых что не работает? |
у менЯ значение 0 и 1
вы скинули код, теперь если выбрать где значение 1 селект имеет disabled |
на телефоне и планшете это не работало
|
Цитата:
Вы посмотрите на свой код, у вас в обеих условиях $('#pp').attr('disabled',false);, а мне тем боле откуда знать, чего вам вообще нужно. |
мне нужно чтобы при выборе 1 или 0 disabled убирался
|
Цитата:
Если любой выбор в этом списке делает доступным второй список, который по умолчанию, к примеру, недоступен, то сразу, без всяких условий и прописывайте disabled false. И может убрать опцию с пустым значением? Не видно, чтобы она что-то определяла. |
мне нужно чтобы при выборе 1 или 0 disabled убирался. выбрал 0 в select отображены .hd1 поля с этим классом. выбрал 1 с .hd2
|
var v = +this.value;
$( ".hd1").css('display', ['block', 'none'][v]);
$( ".hd2").css('display', ['none', 'block'][v]);
if(v == 0){
$('#pp').prop('disabled', v);
}
так сделал |
А если не равно 0, тогда что?
|
ну сейчас работает как надо site.artem55555p.ru и на телефоне работает все.
|
может у кого-то есть другие варианты?
|
Цитата:
|
ну я делал проверку на 1, но оно и так работало...
|
ну сейчас на телефоне работает, а на планшете нет(((
|
Цитата:
Цитата:
|
у меня change, а не click
$("#sdelka").change(function() {
var v = +this.value;
$( ".hd1").css('display', ['block', 'none'][v]);
$( ".hd2").css('display', ['none', 'block'][v]);
if(v == 0){
$('#pp').prop('disabled', v);
}
});
к сожалению планшет у заказчика, у меня нет планшета и я не могу отследить это..( |
может кто-то что-то подсказать?
|
Цитата:
|
ну сецчас, этот скрипт на планшете не работает. а на телефоне работает. вы можете подсказать в чем проблема?
|
Цитата:
|
все поля сразу показываются
http://clip2net.com/s/3Mpb29C т.е. $( ".hd1").css('display', ['block', 'none'][v]); $( ".hd2").css('display', ['none', 'block'][v]); это сразу block |
Цитата:
Список по умолчанию должен быть недоступен, а на самом деле как? |
а как тогда?
$("#sdelka").change(function() {
var v = +this.value;
$( ".hd1").css('display', ['block', 'none'][v]);
$( ".hd2").css('display', ['none', 'block'][v]);
$('#pp').prop('disabled', v);
});
если так, то при выборе:
<select id="sdelka" class="sel" name="rent_buy">
<option value=""><?php echo Yii::t('common', 'Sale/Rent')?></option>
<option value="0"><?php echo Yii::t('common', 'Rent')?></option>
<option value="1"><?php echo Yii::t('common', 'Sale')?></option>
</select>
это если выбираю: <option value="1"><?php echo Yii::t('common', 'Sale')?></option> то все равно disabled |
а value трогать нельзя. только так, пусто, 0 и 1
|
Цитата:
Но если первый список управляет доступностью второго, а по умолчанию надо полагать "по жалобе" он должен быть недоступен, то: <select id="pp" ..... disabled> |
не, <select id="sdelka" class="sel" name="rent_buy"> тут не должно быть disabled он всегда доступен. меняется второй селект
|
ну так это и стоит же.. disabled="disabled"
|
вот, http://site.artem55555p.ru/ru здесь все работает нормально на пк, и телефоне. а на планшете не хочет.
|
Сдается мне, что вы путаете понятие disabled с понятиями block и none.
|
вы предлагаете disabled="disabled" изменить на disabled просто??
|
Цитата:
Пофигу, что будет написано в значении данного атрибута, хоть абвгд, хоть пустая строка, хоть просто disabled -элемент будет недоступен. Понимаете - недоступен! То есть по отношению к списку его нельзя будет раскрыть. А display: block/none, это сделать видимым/невидимым элемент списка. Проблемы с чем на планшете: а) - не зависимо от установки disabled список все равно можно раскрыть (что вряд ли), б) - не зависимо от выбора в первом списке все опции второго списка видны (что скорее всего)? И коли второе, то браузер на планшете игнорирует данные определения. |
И коли второе, то браузер на планшете игнорирует данные определения.
Ответить с цитированием - ну да:( я и спрашиваю как это исправить можно)))) |
Может, так?
<div class="col-md-3 col-sm-6 col-xs-12">
<select id="sdelka" class="sel" name="rent_buy">
<option value="?">Sale/Rent?</option>
<option value="0">Rent</option>
<option value="1">Sale</option>
</select>
</div>
<div class="col-md-3 col-sm-6 col-xs-12">
<select disabled="disabled" id="pp" class="sel" name="type">
<option value="">Property type?</option>
<option class="hd1" value="1">Villa/Home</option>
<option class="hd1" value="2">Condo/Apartments</option>
<option class="hd1" value="3">Bungalo</option>
<option class="hd2" value="4">Villa/Home</option>
<option class="hd2" value="5">Condo/Apartments</option>
<option class="hd2" value="6">Project</option>
<option class="hd2" value="7">Commercial</option>
<option class="hd2" value="8">Land</option>
</select>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$("#sdelka").change(function() {
var v = +this.value;
$( ".hd1").css('display', ['block', 'none'][v]);
$( ".hd2").css('display', ['none', 'block'][v]);
$('#pp').prop('disabled', isNaN(v));
});
</script>
|
Не знаю, я не считаю планшет компьютером, по крайней мере мне такого не нужно, у меня нет. Что за браузер на планшете чужом тем более не знаю и есть ли какие способы профиксить его поведение.
Самым простым и логичным, это не стиль опций менять, а делать их недоступными, то есть:
$("#sdelka").change(function() {
$( ".hd1, .hd2").prop('disabled', +this.value);
$('#pp').prop('disabled', !this.value);
});
|
Вообще-то по нормальному надо делать два селекта второго уровня и показывать из них нужный в соответствии с выбором в селекте первого уровня.
|
а это может из-за браузера быть? т.к. ни один ни Ваш ни мой вариант не работает именно на ПЛАНШЕТЕ
|
artem55555p,
Цитата:
Что значит - не работает? |
хром. та же проблема. при клике на один селект, во втором селекте показываются все пункты. хотя вот вы же и писали:
$( ".hd1").css('display', ['block', 'none'][v]); $( ".hd2").css('display', ['none', 'block'][v]); но это тоже не работает(( |
я не знаю, почему пункты не убираются... 2й день сижу
|
| Часовой пояс GMT +3, время: 19:32. |