Доброго времени, уважаемый All.
Помогите разобраться со следующим вопросом.
Используется компонент sale.ajax.locations, и в нем столкнулся с косяком.
Выбор местоположения происходит в 2 этапа, 1 - выбор "страны", 2-й - выбор "города". При выборе города срабатывает OnClick и дергается функция submitForm(), которая подтягивает службы доставки. Все работает.
До момента, когда в списке городов больше 1-го города.
Если город один, то битрикс считает, что его можно не отображать:
В результате получается такая ситуация как на картинке. Т.е. <select>, при выборе которого должен происходить обсчет доставки недоступен. Соответвтенно заставить его сработать без костылей вроде никак.
Битрикс свежий, на Местоположения 2.0 перейти не получится пока.
Как сделать чтобы <select> отображался даже для одного города я знаю, также знаю как заставить сработать submitForm() в такой ситуации. Но это все костыли. Хочу понять, это мой какой-то косяк, или недоработка компоненты? Не хотелось бы править компоненту на практически стандартном функционале.
Спасибо.
Помогите разобраться со следующим вопросом.
Используется компонент sale.ajax.locations, и в нем столкнулся с косяком.
Выбор местоположения происходит в 2 этапа, 1 - выбор "страны", 2-й - выбор "города". При выборе города срабатывает OnClick и дергается функция submitForm(), которая подтягивает службы доставки. Все работает.
До момента, когда в списке городов больше 1-го города.
Если город один, то битрикс считает, что его можно не отображать:
Код |
---|
if (count($arResult["CITY_LIST"]) == 1) $cDisabled = true; else $cDisabled = false; $id = "id=\"".$idAttrValue."\""; ?> <?if($cDisabled):?> <div style="display:none"> <?endif?> <select <?=$id?> <?if($disabled) echo "disabled";?> name="<?=$arParams["CITY_INPUT_NAME"]?>"<?if (strlen($arParams["ONCITYCHANGE"]) > 0):?> oncha nge="<?=$arParams["ONCITYCHANGE"]?>"<?endif;?> type="location"> <option><?echo GetMessage('SAL_CHOOSE_CITY')?></option> <?foreach ($arResult["CITY_LIST"] as $arCity):?> <option value="<?=$arCity["ID"]?>"<?if ($arCity["ID"] == $arParams["CITY"]):?> selected="selected"<?endif;?>><?=($arCity['CITY_ID'] > 0 ? $arCity["CITY_NAME"] : GetMessage('SAL_CHOOSE_CITY_OTHER'))?></option> <?if($arCity["ID"] == $arParams["CITY"]) $cityName = $arCity["CITY_NAME"];?> <?endforeach;?> </select> <? if($cDisabled):?> </div> <?if(strlen($cityName) > 0):?> <div class="sale_locations_fixed"><?=GetMessage("SAL_LOC_CITY").": ".$cityName?></div> <?endif;?> <?endif?> |
В результате получается такая ситуация как на картинке. Т.е. <select>, при выборе которого должен происходить обсчет доставки недоступен. Соответвтенно заставить его сработать без костылей вроде никак.
Битрикс свежий, на Местоположения 2.0 перейти не получится пока.
Как сделать чтобы <select> отображался даже для одного города я знаю, также знаю как заставить сработать submitForm() в такой ситуации. Но это все костыли. Хочу понять, это мой какой-то косяк, или недоработка компоненты? Не хотелось бы править компоненту на практически стандартном функционале.
Спасибо.