Задать вопрос
@danyfir

Как сделать вызов функции в Internet Explorer?

Вот такой код. Работает везде, кроме IE. На сайте много посетителей с этого браузера. Судя по консоли, IE даже не понимает что функция Selected(this) вызывается. Быть может, this не читает?

<script>
                                function Selected(a) {
                                var label = a.value;
                                if (label=='Победитель (1 место)') {
                                document.getElementById('Block').innerHTML = 'Стоимость диплома: 120 руб.';
                                document.querySelectorAll('#cena').forEach((el) => el.value = '120');
                                } 
                                else if (label=='Победитель (2 место)') {
                                document.getElementById('Block').innerHTML = 'Стоимость диплома: 110 руб.';
                                document.querySelectorAll('#cena').forEach((el) => el.value = '110');
                                }
                                else if (label=='Победитель (3 место)') {
                                document.getElementById('Block').innerHTML = 'Стоимость диплома: 100 руб.';
                                document.querySelectorAll('#cena').forEach((el) => el.value = '100');
                                } 
                                else if (label=='Участник') {
                                document.getElementById('Block').innerHTML = 'Стоимость диплома: 29 руб.';
                                document.querySelectorAll('#cena').forEach((el) => el.value = '29');
                                alert('Участник'); 
                                } 
                                }
                                </script>


<select required name="user_status" id="user_status" onChange="Selected(this)">
                            <option class="cvet" value="" disabled="" selected="">Место</option>
                            <option value="Победитель (1 место)">1 место (120 руб.)</option>
                            <option value="Победитель (2 место)">2 место (110 руб.)</option>
                            <option value="Победитель (3 место)">3 место (100 руб.)</option>
                            <option value="Участник">Участник (29 руб.)</option>
                            </select>
                            
                            <div id='Block'>Стоимость диплома: 29 руб.</div>
                            
                            <form method="POST" class="application" accept-charset="UTF-8" action="https://paymaster.ru/payment/init">
                            <input type="hidden" name="LMI_MERCHANT_ID" value="klm32klm-23lmk23klm"/>
                            <input type="hidden" id="cena" name="LMI_PAYMENT_AMOUNT" value="100" />
                            <input type="hidden" name="LMI_CURRENCY" value="RUB" />     
                            <input type="hidden" name="LMI_PAYMENT_METHOD" value="BankCard" />
                            <input type="submit" value="Оплатить">
                            </form>
  • Вопрос задан
  • 163 просмотра
Подписаться Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@titelhalter
Если Вы не используете сборщики, а вставляете код напрямую на страницу, то он не работает, потому что IE не поддерживает стрелочные функции.
Ответ написан
Комментировать
@danyfir Автор вопроса
Проблему решил. Загвоздка была в:
document.querySelectorAll('#cena').forEach((el) => el.value = '120');

IE не воспринимал эти строчки.
Заменил на
$('*#cena').val('100');

И короче и проще получилось. Не знал про звездочку перед id. Спасибо всем "экспертам"...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы