Помощь Добавить JavaScript в компонент FormCalc

Статус
В этой теме нельзя размещать новые ответы.

alexXXL

Постоялец
Регистрация
7 Май 2012
Сообщения
134
Реакции
13
Нужна помощь в настройке калькулятора грузоперевозок на основе компонента FormCalc . Сейчас стоимость перевозок рассчитывается по формуле:
Код:
rez={wes}*4
где: wes - вес груза, вводимый пользователем, 4 - тариф перевозки 1 кг.
Нужно сделать так, чтобы в зависимости от введенного пользователем веса выбирался тариф перевозок, например до 500 кг - 4,4; до 800 кт - 4,2: до 1500 кг - 4 и т.п.
Насколько я понимаю, нужна какая-нибудь функция сравнения. Так как в JavaScript я полный ноль, прошу вашей помощи в написании этой функции.
 
спроси лучше в java-разделе.
 
  • Заблокирован
  • #3
спроси лучше в java-разделе.
там не знают синтаксис formcalc. Вот тебе формула, правда не могу проверить - у меня он не работает почему-то:(
Код:
if({wes} < 500){
    rez = 4.4;
}else if({wes} >= 500 && {wes} < 800){
    rez = 4.2;
}else if({wes} >= 800 && {wes} < 1500){
    rez = 4;
}
Код для html должен быть таким
HTML:
Вес груза: <input type="text" name="wes" />
Тариф: {rez}
P.S.: Кстати он у кого-нить на joomla 2.5 вообще работает? FormCalc всмысле
 
Такое в принципе не будет работать, т.к в поле "формула" не должно быть пробелов в выражении. На джумлафоруме встречал варианты, где перед html-формой был вставлен джаваскрипт. Видимо и здесь нужен такой же подход, только я в джава полный ноль)))
 
Не знаю актуально ли, но столкнулся с такой же проблемой. Формула моя сложнее.
Вот кусок кода для формы:
HTML:
<script language="javascript">
function minus(obj)
{
  val = parseInt(document.forms['calcForm'].elements[obj].value);
  if (val>0){
    val--;
    document.forms['calcForm'].elements[obj].value=val;
    document.forms['calcForm'].elements[obj].fireEvent('change');
  }
}
function plus(obj)
{
  val = parseInt(document.forms['calcForm'].elements[obj].value);
  val++;
  document.forms['calcForm'].elements[obj].value=val;
  document.forms['calcForm'].elements[obj].fireEvent('change');
}
 
</script>
 
<table width="600" border="0" style="margin: auto">
  <tr>
    <td width="50%" style="text-align: left; vertical-align: top">Высота символа</td>
    <td style="text-align: center; vertical-align: top">
    <table border="0" cellpadding="0" cellspacing="0" align="center">
        <tbody><tr><td rowspan="2" width="12"><input name="rs" size="2" class="validate['required','digit[5,50]']" value="0" style="text-align: center;"  type="text" align="middle"></td>
        <td width="25"><input value="&#9650;" ondblclick="plus('rs')" onclick="plus('rs')" style="font-size: 4pt; width: 17px;" type="button"></td></tr>
        <tr><td><input value="&#9660;" onclick="minus('rs')" ondblclick="minus('rs')" style="font-size: 4pt; width: 17px;" type="button"></td></tr>
      </tbody></table>
      </td>
  </tr>
 
</table>
 
 
Итого: {res} руб.

В поле формул вбита такая формула:
Код:
res=Math.round(338.942*Math.exp(-1*0.0244*{rs}))
Верхний скрипт (между тегами <script language="javascript"> и </script>) взят с сайта разработчиков.
 
А откуда в скрипт попадает значение document.forms['calcForm'].elements[obj].value ? Что-то я не вижу в вашей форме элемента с таким именем.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху