Зависимый список с выводом стоимости. Нужна помощь
Вложений: 1
Добрый день уважаемые форумчане!
На просторах данного форума нашел темку от 10 года, и забрал из нее скриптик. Сама тема Забрал из нее сливки и начал делать для себя. Вроде все сначала шло как по маслу но, потом наткнулся на проблему. Сам скрипт во вложении. Суть проблемы: нужно сделать что бы выводилась сумма из выбранной опции value. <select id="articul_1" name="rar" class="select"> <optgroup label="Granta St"> <option id="g1" value="1300">На 1 сутки</option> <option id="g2" value="1100">2-3 суток</option> <option id="g3" value="1000">4-6 суток</option> </optgroup> <optgroup label="Granta Nm"> <option id="g4" value="1600">На 1 сутки</option> <option id="g5" value="1300">2-3 суток</option> <option id="g6" value="1200">4-6 суток</option> </optgroup> </select> <br><br> <input type="button" onClick="javascript:CalcSum();" value="Расчитать стоимость"> <br><br> <div id=TextSum></div> На данный момент выводится только последний. Сам скрипт подсчета: function CalcSum(){ var o=document.getElementById("articul_1"); sum = 0; for(var i = 0; i < o.options.length; i++) { m1 = o.options[i].value; if ((m1 > 0)) { sum = m1; } } document.getElementById('TextSum').innerHTML = sum + " руб."; } Почему выводится только последний, а не тот который я выбрал? Дополнительно: как заблокировать подкатегорию, до тех пор пока не выбрана главная категория. Заранее спасибо! |
Может конечно это устаревший вариант. Может есть то то новее и продуманей в плане подсчета стоимости. Буду признателен если посоветуете, что бы не делать велосипед.
|
MrZlo,
:blink: function CalcSum(){ var o=document.getElementById("articul_1"); document.getElementById('TextSum').innerHTML = o.value + " руб."; } |
MrZlo,
Цитата:
if ((m1 > 0)) { sum = m1; } |
Огромное спасибо! Помогло! Как и ожидал что просто что то намудрил )
Еще пару вопросов: 1. Как заблокировать подкатегорию, до тех пор пока не выбрана главная категория? 2. Как сделать что бы с сумма выводилась без нажатия на кнопку "Расчитать стоимость"? |
MrZlo,
1. Где твои главные категории? 2. повесь листенера на событие change для селекта |
Цитата:
<!-- Пишем в соответствии со стандартом HTML5 --> <!DOCTYPE HTML> <html> <head> <!-- Пишем заголовок документа --> <title>Динамические списки</title> <!-- Подключаем CSS-файл к документу --> <link rel="stylesheet" type="text/css" href="style.css" /> <!-- Подключаем библеотеку jQuery, которая хранится на сервере Яндекса --> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> <!-- Подключаем файл со своим собственным скриптом --> <script src="my.script.js"></script> <script type="text/javascript"> function CalcSum(){ var o=document.getElementById("articul_1"); document.getElementById('TextSum').innerHTML = o.value + " руб. за сутки + Аванс от 5000 руб."; } </script> </head> <body> <!-- Форма для динамических списков --> <form name=MenuF> <div id="calctitle">Марка:</div><!-- ГЛАВНЫЕ КАТЕГОРИИ --> <select id="category_1" class="select"> <option value="Lada">Lada</option> <option value="Lifan">Lifan</option> <option value="Renault">Renault</option> <option value="Nissan">Nissan</option> <option value="Daewoo">Daewoo</option> <option value="Mitsubisi">Mitsubisi</option> <option value="Toyota">Toyota</option> <option value="Volkswagen">Volkswagen</option> <option value="Газ">Газ</option> </select> <div id="calctitle">Модель:</div><!-- ПОДКАТЕГОРИИ --> <select id="subcategory_1" class="select"> <optgroup label="Lada"> <option value="Granta St">Granta St</option> <option value="Granta Nm">Granta Nm</option> <option value="Granta At">Granta At</option> <option value="Largus 7 мест">Largus 7 мест</option> </optgroup> <optgroup label="Lifan"> <option value="Smile">Smile</option> </optgroup> <optgroup label="Renault"> <option value="Logan St">Logan St</option> <option value="Logan Nm">Logan Nm</option> <option value="Logan 2014">Logan 2014</option> <option value="Logan At">Logan At</option> <option value="StepWay At">StepWay At</option> <option value="Fluence">Fluence</option> </optgroup> <optgroup label="Nissan"> <option value="Аlmera Nm">Аlmera Nm</option> <option value="Аlmera At">Аlmera At</option> <option value="Juke">Juke</option> </optgroup> <optgroup label="Daewoo"> <option value="Nexia">Nexia</option> <option value="Matiz">Matiz</option> </optgroup> <optgroup label="Mitsubisi"> <option value="Lancer">Lancer</option> </optgroup> <optgroup label="Газ"> <option value="Соболь Баргузин">Соболь Баргузин</option> </optgroup> <optgroup label="Toyota"> <option value="Corolla At">Corolla At</option> <option value="Camry At">Camry At</option> </optgroup> <optgroup label="Volkswagen"> <option value="Polo">Polo</option> </optgroup> </select> <div id="calctitle">Количество суток:</div> <select id="articul_1" name="rar" class="select"> <optgroup label="Granta St"> <option id="g1" value="1300">На 1 сутки</option> <option id="g2" value="1100">2-3 суток</option> <option id="g3" value="1000">4-6 суток</option> <option id="g4" value="900">7-15 суток</option> <option id="g5" value="800">2-3 суток</option> <option id="g6" value="700">4-6 суток</option> <option id="g7" value="2750">Выходные*</option> </optgroup> <optgroup label="Granta Nm"> <option id="g1" value="1600">На 1 сутки</option> <option id="g2" value="1300">2-3 суток</option> <option id="g3" value="1200">4-6 суток</option> <option id="g4" value="1100">7-15 суток</option> <option id="g5" value="900">2-3 суток</option> <option id="g6" value="800">4-6 суток</option> <option id="g7" value="3250">Выходные*</option> </optgroup> </select> <br><br> <input type="button" onClick="javascript:CalcSum();" value="Расчитать стоимость"> <br><br> <div id=TextSum></div> </form> </body> </html> |
Скрипт для зависимых списоков
(function($) {$.fn.dependent = function(opts) {opts.data = {};this.each(function() {$.each(opts.chain, function(index, selectID) {var ident = selectID.substr(1);var selectHTML = $(selectID).html(); opts.data[ident] = {}; $('<select>'+selectHTML+'</select>').find('optgroup').each(function() {var optGroup = $('<div>').append( $(this).eq(0).clone() ).html(); var group = $(this).attr('label');opts.data[ident][group] = optGroup;}); if(opts.chain[index+1]) {$(opts.chain[index]).bind('change', { 'nextID' : opts.chain[index+1] }, binding);} }); $(this).bind('change', { 'nextID' : opts.chain[0] }, binding); function binding(event) {var next = event.data.nextID.substr(1); $('#'+next).html(opts.data[next][$(this).val()]); $('#'+next).trigger('change');}});}})(jQuery); // Обращение к функции Dependent JQuery для взаимосвязанных списков $(document).ready(function() {$('#category_1').dependent({chain : ['#subcategory_1', '#articul_1']});}); |
Цитата:
|
MrZlo,
Цитата:
https://learn.javascript.ru/introduction-browser-events |
Часовой пояс GMT +3, время: 00:05. |