Проблема с калькулятором
Доброго дня, в javascript мало разбираюсь, но нужно калькулятор на сайт настроить.
Калькулятор есть, рассчитывает, но опции из <select> не меняются, то есть их значения не меняются. Вот: <select id="vid" name="vid" class="vid"> <option value="120">Однотонные</option> <option value="1200">Двух-уровневые</option> <option value="1000">Арт - печать</option> <option value="350">Небо с облаками / Искра</option> </select> При выборе любой опции из списка значение остается как у первой опции, то есть 120. В скрипте написал так: $(function() {var vid = document.getElementById('vid').options[document.getElementById('vid').selectedIndex].value; а это формула: $('#square').keyup(function(){ var square = $(this).val(); $('#price').val(square*vid) }); Все работает, только селект значение не меняет при выборе любой опции. Подскажите что нужно еще прописать в скрипте. Заранее спасибо. |
Нужно установить обработчик изменения в списке (change) и в поле ввода (keyup, input). <html> <head> <meta charset="utf-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <style> </style> <script type="text/javascript"> $(function() { var elm = $('#vid,#price').on('change input keyup', function() { alert(this.value * elm.not(this).val()) }) }); </script> </head> <body> <select id="vid" name="vid"> <option value="120">Однотонные</option> <option value="1200">Двух-уровневые</option> <option value="1000">Арт - печать</option> <option value="350">Небо с облаками / Искра</option> </select> <input id="price" /> </body> </html> |
да теперь меняются значения при выборе опций, но не отображается в поле price, а только во всплывающем окне alert
|
Цитата:
$('#vid,#price') заменить на $('#vid,#square') а это alert(this.value * elm.not(this).val()) заменить на $('#price').val(this.value * elm.not(this).val()) |
Спасибо Вам большое, все меняет и считает, но какая то появилась, когда в поле square вводишь цифры, то в поле price на доли секунды появляется правильный ответ, а потом появляется NaN
а когда потом опции из селекта выбираешь, то нормальное число в поле price |
Полностью скрипт выглядит так:
$(function() { var elm = $('#vid,#square').on('change input keyup', function() { 10 $('#price').val(this.value * elm.not(this).val()) }) $('#square').keyup(function(){ var square = $(this).val(); $('#price').val(square*vid) }); $('#price').keyup(function(){ var price = $(this).val(); $('#square').val(price/vid) }); |
Этого
$('#square').keyup(function(){ var square = $(this).val(); $('#price').val(square*vid) }); $('#price').keyup(function(){ var price = $(this).val(); $('#square').val(price/vid) }) не надо, все делает вот этот код $(function() { var elm = $('#vid,#square').on('change input keyup', function() { $('#price').val(this.value * elm.not(this).val()) }); }); |
Цитата:
|
Теперь проблема с модальным окном, оно перестало закрываться при нажатии кнопки"отправить заявку"
Вот скрипт: $('.modal').on('hidden.bs.modal', function (e) { $('input:not(.type)', $(this)).val(''); }); $('form').submit(function(e){ e.preventDefault(); var form_data = { 'name':$(".name", $(this)).val(), 'tel':$(".tel", $(this)).val(), 'info':$(".info", $(this)).val(), 'vid':$("#vid", $(this)).val(), 'price':$("#price", $(this)).val(), 'square':$("#square", $(this)).val(), 'type':$(".type", $(this)).val() }; $.ajax({ type: "POST", url: "mail.php", data: form_data, success: function(){ $('.modal').modal('hide'); setTimeout(function() { $('.success').fadeToggle(); }, 1000); setTimeout(function() { $('.success').fadeToggle(); }, 2500); }, error: function() { alert("Произошла какая то ошибка!"); } }); }); Ошибка: Uncaught TypeError: $(...).modal is not a function at Object.success (script.js:74) at c (jquery.min.js:4) at Object.fireWith [as resolveWith] (jquery.min.js:4) at k (jquery.min.js:6) at XMLHttpRequest.r (jquery.min.js:6) Вот кнопка: Код: <button data-dismiss="modal">ОСТАВИТЬ ЗАЯВКУ</button> |
Цитата:
|
Часовой пояс GMT +3, время: 06:43. |