Собственно не смог удержатся, понимаю, для автора уже поздно ответ писать, но в гугле ещё много людей, которые ищут решение, поэтому, как сделал я, чтобы цена бралась из селекта:
Функция обработки списков и вызов функции ровно такой же, как и у автора, ничего не менял:
(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']});});
Функция расчёта:
function CalcSum(){
var o=document.getElementById("articul_1");
sum = 0;
for(var i = 0; i < o.options.length; i++) {
m1 = o.options[i].value;
m2 = o.options[i].id;
if ((m1 > 0) && (m2 > 0)) {
sum = m1*m2;
}
}
document.getElementById('TextSum').innerHTML = sum + " руб.";
}
HTML форма:
<form name=MenuF>
<div id="calctitle">Тип кузова:</div>
<select id="category_1" class="select">
<option value="Цельнометаллический фургон">Цельнометаллический фургон</option>
<option value="Изотермическая будка">Изотермическая будка</option>
<option value="Изотермический с гидробортом">Изотермический с гидробортом</option>
<option value="Рефрижератор с гидробортом">Рефрижератор с гидробортом</option>
<option value="Рефрижератор">Рефрижератор</option>
</select>
<div id="calctitle">Грузоподъемность:</div>
<select id="subcategory_1" class="select">
<optgroup label="Цельнометаллический фургон">
<option value="1ton">1 тонна</option>
<option value="2ton">1,7 тонн</option>
<option value="3ton">2,5 тонн</option>
</optgroup>
<optgroup label="Изотермическая будка">
<option value="4ton">2,5 тонн</option>
</optgroup>
<optgroup label="Изотермический с гидробортом">
<option value="5ton">10 тонн</option>
</optgroup>
<optgroup label="Рефрижератор с гидробортом">
<option value="6ton">10 тонн</option>
</optgroup>
<optgroup label="Рефрижератор">
<option value="7ton">20 тонн</option>
</optgroup>
</select>
<div id="calctitle">Объем кузова:</div>
<select id="articul_1" name="rar" class="select">
<optgroup label="1ton">
<option id="400" value="6">7,94 м.куб.</option>
</optgroup>
<optgroup label="2ton">
<option id="400" value="6">9,07 м.куб.</option>
</optgroup>
<optgroup label="3ton">
<option id="470" value="7">13,64 м.куб.</option>
</optgroup>
<optgroup label="4ton">
<option id="500" value="7">15,54 м.куб.</option>
<option id="500" value="7">18,48 м.куб.</option>
</optgroup>
<optgroup label="5ton">
<option id="800" value="8">9,69 м.куб.</option>
</optgroup>
<optgroup label="6ton">
<option id="900" value="8">44,10 м.куб.</option>
</optgroup>
<optgroup label="7ton">
<option id="1000" value="8">83,30 м.куб.</option>
</optgroup>
</select>
<br><br>
<input type="button" onClick="javascript:CalcSum();" value="Расчитать">
<br><br>
<div id=TextSum></div>
</form>