Перейти к содержимому


Фотография
- - - - -

Вывод доп полей в зависимости от выбранного значения


Лучший Ответ Arlekina , 14 August 2013 - 07:59

Смотрите, у вас в jbuniversal\templates\catalog\renderer\basket\_default.php есть этот кусок

$(".element-radio").change(function () {
            value = $('.element-radio input:radio:checked').val();
            //alert(value);
            if (value == "lichno-v-ofise") {
                $('#idmyblock').show();
            } else {
                $('#idmyblock').hide();
            }
    });
	<div id="idmyblock">
                <p>Тест</p>
                
            </div>
</script>

А потом в template.js, тоже самое.

<div id="idmyblock"><p>Тест</p></div> вытащите из скрипта. Остальное, что написано вами уберите.

В template.js в предпоследней строке }); вроде лишнее.

 

я бы для проверки срабатывания создала новый js файл с содержанием

(function($){

	$(document).ready(function() {
 
    $(".element-radio").change(function () {
            value = $('.element-radio input:radio:checked').val();
            //alert(value);
            if (value == "lichno-v-ofise") {
                $('#idmyblock').show();
            } else {
                $('#idmyblock').hide();
            }
    });
    });
})(jQuery);

в остальных местах убрать и в template.js посмотреть скобки.

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 20

#11 Arlekina

Arlekina

Отправлено 13 August 2013 - 08:23

У вас инпуты не в классе controls, привяжитесь например к классу  element-radio . А где у вас блок с id idmyblock? в коде его не видно.


  • 0

#12 i001

i001

Отправлено 13 August 2013 - 09:22

controls заменил на element-radio

вообщем сейчас вставлено следующее

<script type="text/javascript">
jQuery(".element-radio").change(function () {
            value = jQuery('.element-radio input:radio:checked').val();
            //alert(value);
            if (value = "lichno-v-ofise") {
                jQuery('#idmyblock').show();
            } else {
                jQuery('#idmyblock').hide();
            }
    });		</script>

<div class="idmyblock"><p>Тест</p></div>

  • 0

#13 Arlekina

Arlekina

Отправлено 13 August 2013 - 09:36

 

controls заменил на element-radio

вообщем сейчас вставлено следующее

<script type="text/javascript">
jQuery(".element-radio").change(function () {
            value = jQuery('.element-radio input:radio:checked').val();
            //alert(value);
            if (value = "lichno-v-ofise") {
                jQuery('#idmyblock').show();
            } else {
                jQuery('#idmyblock').hide();
            }
    });		</script>

<div class="idmyblock"><p>Тест</p></div>
<div class="idmyblock">

меняем на

<div id="idmyblock">

  • 0

#14 i001

i001

Отправлено 13 August 2013 - 09:57

заменил, ничего не происходит, все равно


  • 0

#15 Arlekina

Arlekina

Отправлено 13 August 2013 - 10:43

у меня просто подобный скрипт подключается с отдельного файла. ради интереса вставила так как у вас и тоже не работает. попробуйте подключить отдельный файл через общий шаблон, типа main.js и туда написать:

var jQuery = jQuery.noConflict();
jQuery(document).ready(function(){

    jQuery(".element-radio").change(function () {
            value = jQuery('.element-radio input:radio:checked').val();
            //alert(value);
            if (value = "lichno-v-ofise") {
                jQuery('#idmyblock').show();
            } else {
                jQuery('#idmyblock').hide();
            }
    });
});

а прошлое закомментить


  • 0

#16 i001

i001

Отправлено 13 August 2013 - 11:38

поставил в template.js та же история


  • 0

#17 Arlekina

Arlekina

Отправлено 13 August 2013 - 20:19

i001, во первых у вас ошибка в строке

if (value = "lichno-v-ofise") {

должно быть

if (value == "lichno-v-ofise") {

Во вторых: надо или убрать строку

var jQuery = jQuery.noConflict();

или все аккуратно стереть и написать

$(".element-radio").change(function () {
            value = $('.element-radio input:radio:checked').val();
            //alert(value);
            if (value == "lichno-v-ofise") {
                $('#idmyblock').show();
            } else {
                $('#idmyblock').hide();
            }
    });

  • 0

#18 i001

i001

Отправлено 14 August 2013 - 05:01

сделал как вы написали, все равно не срабатывает инпут. ((


  • 0

#19 Arlekina

Arlekina

Отправлено 14 August 2013 - 07:59   Лучший Ответ

Смотрите, у вас в jbuniversal\templates\catalog\renderer\basket\_default.php есть этот кусок

$(".element-radio").change(function () {
            value = $('.element-radio input:radio:checked').val();
            //alert(value);
            if (value == "lichno-v-ofise") {
                $('#idmyblock').show();
            } else {
                $('#idmyblock').hide();
            }
    });
	<div id="idmyblock">
                <p>Тест</p>
                
            </div>
</script>

А потом в template.js, тоже самое.

<div id="idmyblock"><p>Тест</p></div> вытащите из скрипта. Остальное, что написано вами уберите.

В template.js в предпоследней строке }); вроде лишнее.

 

я бы для проверки срабатывания создала новый js файл с содержанием

(function($){

	$(document).ready(function() {
 
    $(".element-radio").change(function () {
            value = $('.element-radio input:radio:checked').val();
            //alert(value);
            if (value == "lichno-v-ofise") {
                $('#idmyblock').show();
            } else {
                $('#idmyblock').hide();
            }
    });
    });
})(jQuery);

в остальных местах убрать и в template.js посмотреть скобки.


  • 1

#20 i001

i001

Отправлено 15 August 2013 - 17:46

Arlekina, большое спасибо за участие, получилось только созданием отдельного js.  


  • 1




Click to return to top of page in style!