2015-06-16 2 views
1

У меня есть форма, где вы можете выбрать, оплачивают ли налоги или нет, если мы дадим скидку, цену по умолчанию, цену после скидки, цену после налогов и общую цену.html form input поля javascript sum

Вот что у меня есть:

<table width="339" border="0" cellpadding="0"> 
    <tr> 
     <td width="98">Taxes</td> 
     <td width="115">Discount</td> 
     <td width="118">Default price</td> 
    </tr> 
    <tr> 
     <td> 
      <select class="select" name="taxes"> 
       <option value="no" selected>no taxes</option> 
       <option value="yes">19% taxes</option> 
      </select> 
     </td> 
     <td> 
      <select class="select" name="discount" onChange="updateInput()"> 
       <option value="5" selected>5% discount</option> 
       <option value="10">10% discount</option> 
       <option value="20">20% discount</option> 
      </select> 
     </td> 
     <td> 
      <input type="text" class="input140" name="cost" id="cost" value="1000"> 
     </td> 
    </tr> 
    <tr> 
     <td>Price after discount</td> 
     <td>Taxes</td> 
     <td>Total Price to pay</td> 
    </tr> 
    <tr> 
     <td> 
      <input type="text" name="price" value=""> 
     </td> 
     <td> 
      <input type="text" name="taxes" value="0"> 
     </td> 
     <td> 
      <input type="text" name="total" value="0"> 
     </td> 
    </tr> 
</table> 
<script> 
    function updateInput() { 
     var discount = document.getElementsByName("discount")[0].value; 
     var cost = document.getElementsByName("cost")[0].value; 
     document.getElementsByName("price")[0].value = cost - (cost * (discount/100)); 
    } 
</script> 

Я пытаюсь сделать эту форму, чтобы работать, но если повторить Javascript используется он не работает.

Вот демо Fiddle

https://jsfiddle.net/nte6xqdv/6/

Мы имеем цену по умолчанию +1,000 работает нормально, если мы добавим скидку клиенту он изменил штраф цена после скидки

НО Если я выбираю да к налогам 19% оно изменяет что-нибыдь и общая цена для того чтобы оплатить после рабата плюс тягла не работает ни. Есть идеи?

+1

это ваш близнец? http://stackoverflow.com/questions/30878038/javascript-select-change-field-price-with-discount-onchange –

+0

является частью неработающей – maradoiano

+0

Нет изменений, мой ответ готов. –

ответ

0

Ваш код почти прекрасен, требуется только небольшое количество исправлений: вы использовали одно и то же имя для выбора «налоги» и ввода «налоги» (теперь «ttaxes»), вы присвоили значение «да» налог (я изменил его на 19), наконец, скопировал свой собственный код для расчета скидки (используется для расчета налогов). Теперь у вас есть только одна вещь: рассчитать сумму обоих (общая цена). Здесь это делается, изменения указываются пронумерованными стрелками:

<html> 
    <body> 
<table width="339" border="0" cellpadding="0"> 
    <tr> 
    <td width="98">Taxes</td> 
    <td width="115">Discount</td> 
    <td width="118">Default price</td> 
    </tr> 
    <tr> 
    <td><select class="select" name="taxes" onChange="updateInput()"> 
     <option value="no" selected>no taxes</option> 
     <option value="19">19% taxes</option> <!-- <====================== --> 
    </select></td> 
    <td><select class="select" name="discount" onChange="updateInput()"> 
     <option value="5" selected>5% discount</option> 
     <option value="10">10% discount</option> 
     <option value="20">20% discount</option> 
    </select></td> 
    <td><input type="text" class="input140" name="cost" id="cost" value="1000"></td> 
    </tr> 
    <tr> 
    <td>Price after discount</td> 
    <td>Taxes</td> 
    <td>Total Price to pay</td> 
    </tr> 
    <tr> 
    <td><input type="text" name="price" value=""></td> 
    <td><input type="text" name="ttaxes" value="0"></td> <!-- <====================== --> 
    <td><input type="text" name="total" value="0"></td> 
    </tr> 
</table> 
<script type="text/javascript"> 
function updateInput(){ 
    var discount = document.getElementsByName("discount")[0].value; 
    var cost = document.getElementsByName("cost")[0].value; 
    document.getElementsByName("price")[0].value = cost - (cost * (discount/100)); 

    var taxes = document.getElementsByName("taxes")[0].value; // <====================== 
    if (isNaN(taxes)) // IF "no taxes" IS SELECTED... 
     document.getElementsByName("ttaxes")[0].value = 0; 
    else { cost = document.getElementsByName("cost")[0].value; 
      document.getElementsByName("ttaxes")[0].value = (cost * (taxes/100)); 
     } 

    document.getElementsByName("total")[0].value = 
     parseFloat(document.getElementsByName("price")[0].value) + 
     parseFloat(document.getElementsByName("ttaxes")[0].value); 
} 
</script> 
    </body> 
</html> 
+0

Jose muchas gracias esta funcionando casi perfecto, lo unico que me falta es que el precio final sume precio mas iva mas descuento automaticamente. Me podrias dar una mano con eso porfa? – maradoiano

+0

@maradoiano, ya casi se lo tengo! –

+0

puse otra pregunta, ответить alla para que salga electa la correcta – maradoiano