Не работает jQuery в ActiveForm в Yii2

458
14 июля 2017, 04:48

Здравствуйте.

Не работает свой собственный код jQuery в форме ActiveForm. Даже не цепляется event в консоли.

  1. При onchange выпадающего списка должны обновляться данные.
  2. При onchange формы суммы должны подсчитываться и также заменяться данные.

Отследил по консоли - эти функции даже не вызываются при onchange данных полей. В консоли лишь:

window.controllers является устаревшим. Не используйте его для определения UA.

Пробовал менять/вызывать id/классы, пробовал и .change, и on('change'..), пробовал скрипты подключать снизу/сверху - никакого результат.

К слову, ранее всё работало и проблем не было. Лишь чуть поменял верстку и саму форму - в итоге даже нет реакции на события.

Код JS:

$( ".price-selector" ).on('change',
    function() {
    console.log('Test 1');
    var service_id = $("#order-variant").val();
    $.ajax({
        type: 'GET',
        url: 'index.php?r=dashboard/load-details',
        data: {'service_id' : service_id},
        success: function (data) {
            console.log(data);
            var product = JSON.parse(data);
            $('.title-service').html(product.title);
            $('.descr').html(product.desc);
            $('#min-amount').html(product.min_amount);
            $('#max-amount').html(product.max_amount);
            $('#model-title').html(product.model_title);
        }
    });
    $.ajax({
        type: 'GET',
        url: 'index.php?r=dashboard/load-price',
        data: {'service_id' : service_id},
        success: function (data) {
            $('#product_price').val(data);
        }
    });
    }
);

$("#amount").change(function () {
    console.log('change am');
    var price = $('#product_price').val();
    var amount = $('#amount').val();
    var sum = price * amount;
    console.log(sum);
    $('#sum-to-pay').html(sum);
});

Код формы:

    <?  $form = ActiveForm::begin(['options' => ['class' => 'order-form']]); ?>
    <h6 id="model-title"></h6>
    <div class="vertical-padding"></div>
    <?= $form->field($model, 'service_id')->dropDownList($options, ['id' => 'order-variant', 'class' => 'price-selector'])->label(false);
    ?>
    <?= $form->field($model, 'link')->textInput(['class' => false, 'placeholder' => 'Ссылка на Ваш аккаунт Instagram'])->label(false); ?>
    <?= $form->field($model, 'amount')->input('text', ['id' => 'amount', 'class' => false, 'placeholder' => 'Количество'])->label(false); ?>
    <input type="hidden" id="product_price" value="">
    <div class="pay-summ">
        <h2><span>Сумма к оплате:</span> <span id="sum-to-pay"><b>0</b></span><span>p</span></h2>
    </div>
    <div class="vertical-padding-middle"></div>
    <div class="form-group">
        <?= Html::submitButton('Сделать заказ', ['class' => 'button', 'name' => 'order-button']) ?>
    </div>
    <?
ActiveForm::end();
?>
READ ALSO
Неверный вывод времени js

Неверный вывод времени js

Я получаю данные из json-файлаОни имеют вид массива обьектов(это сообщения)

281
Определение элемента по-краям

Определение элемента по-краям

Есть родителе есть дочерние элементы, часть которых расположена в одном ряде, часть в другом

208
Jquery val() некорректно работает

Jquery val() некорректно работает

Есть input с dir="rtl" (перевернутый, ввод справа налево) и такой код:

317