Kalkulace ve formuláři

Napsáno 27.10.2010 pro RSForm! Pro a označeno jako RSForm

v komponentě RSForm! Pro

RSForm!

Není to tak dávno, co jsem byl tázán, jak udělat, aby bylo možno provádět s hodnotami prvků formuláře početní operace, tehdy jsem ještě správnou odpověď neměl, ale časy se mění a nyní už vím, jak na to.


Vzor formuláře - kalkulace

Pole

field1
Invalid Input
field2
Invalid Input
Total
Invalid Input

Přepínače

radio1
Invalid Input
radio2
Invalid Input
Total2
Invalid Input

Výběr

selectlist
Invalid Input
Total3
Invalid Input


A stejně jako u předchozích návodů je to ve správném zápisu v poli Další atributy, tentokrát u prvku tlačítka pro provedení početní operace, kde je uvedeno:

onclick="calculateText();"

A dále pak ve správném zápisu Javaskriptu v příslušném poli záložky CSS a Javaskript, kde je v tomto případě zapsáno:

<script type="text/javascript">
// <![CDATA[
    function calculateRadio()
    {
      var op1=document.getElementsByName('form[radio1]');
      var op2=document.getElementsByName('form[radio2]');
      var result=document.getElementById('Total2');

      result.value=0;

      result.value=parseInt(result.value);

      for(i=0;i<op1.length;i++)
        if(op1[i].checked) result.value=parseInt(result.value)+parseInt(op1[i].value);

      for(i=0;i<op2.length;i++)
        if(op2[i].checked) result.value=parseInt(result.value)+parseInt(op2[i].value);
    }

    function calculateText()
    {
      var op1=document.getElementById('field1');
      var op2=document.getElementById('field2');
      var result=document.getElementById('Total');

      if(op1.value=="" || op1.value!=parseFloat(op1.value)) op1.value=0;
      if(op2.value=="" || op2.value!=parseFloat(op2.value)) op2.value=0;

      result.value=0;
      result.value=parseInt(result.value);
      result.value=parseInt(result.value)+parseInt(op1.value)+parseInt(op2.value);
    }

    function calculateList()
    {
      var op1=document.getElementById('selectlist');
      var result=document.getElementById('Total3');

      result.value=0;

      result.value=parseInt(result.value);

      for(i=0;i<op1.length;i++)
        if(op1.options[i].selected) result.value=parseInt(result.value)+parseInt(op1[i].value);
    }
// ]]>
</script>

A je to spočítané... :-)

Registrovaní uživatelé si tento formulář opět mohou níže stáhnout a za účelem bližšího prozkoumání jej naimportovat do komponenty RSForm! Pro

A opět přeji hodně úspěchů v přípravě formuláře :-)

Tento vzorový formulář si mohou uživatelé, mající aktivní přístup po zakoupení instalace RSForm! Pro, stáhnout ze svého profilu.
Text byl připraven s použitím materiálů z webových stránek RSJoomla!

Komentáře (0)

Napsat komentář

Pro přidání komentáře se prosím přihlaste.