Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] Automatyczne wyliczanie ceny netto w formularzu
Savage.Mephisto
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 11
Dołączył: 24.01.2008

Ostrzeżenie: (0%)
-----


Witam Forumowiczów.
Na wstępie chciałbym zaznaczyć, że nie znam zbyt dobrze jQuery, dlatego zwracam się do Was z pytaniem: w jaki sposób napisać zdarzenie on.click, dzięki któremu będzie możliwe, po wpisaniu ceny brutto i wybraniu stawki VAT z pola select, automatyczne obliczenie ceny netto i "wrzucenie" stosownej wartości do pola input formualrza (po kliknięciu na pole input z ceną netto)?

Screen, przedstawiający formularz:
(IMG:http://wstaw.org/m/2016/01/06/brutto_to_netto_jpg_300x300_q85.jpg)

Fragment kodu HTML z formularzem:
  1. <form id="jsForm" role="form" method="post" action="">
  2. <div class="form-group">
  3. <label for="" class="col-sm-5 control-label">Elementów na stronę</label>
  4. <div class="col-sm-6">
  5. <select id="js-vat" name="param[vatValue]" class="select2 no-search">
  6. <option value="0.23">23%</option>
  7. <option value="0.08">8%</option>
  8. </select>
  9. </div>
  10. </div>
  11. <div class="form-group">
  12. <label for="" class="col-sm-5 control-label">Cena netto</label>
  13. <div class="col-sm-6">
  14. <input id="js-netto" type="text" name="param[priceNetto]" class="form-control">
  15. </div>
  16. </div>
  17. <div class="form-group">
  18. <label for="" class="col-sm-5 control-label">Cena brutto</label>
  19. <div class="col-sm-6">
  20. <input id="js-brutto" type="text" name="param[priceBrutto]" class="form-control">
  21. </div>
  22. </div>
  23. <div class="modal-footer">
  24. <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-save"></span> Zapisz</button>
  25. </div>
  26. </form>



Fragment kodu JS:
  1. /* ajax */
  2. var form = $('#jsForm'),
  3. vat = form.find('#js-vat'),
  4. netto = form.find('#js-netto'),
  5. brutto = form.find('#js-brutto'),
  6. jsFormUrl = '';
  7.  
  8. /* zamiana ceny brutto na netto */
  9. netto.on('click', function(){
  10. var vat_value = vat.val();
  11. var brutto_value = brutto.val();
  12.  
  13. var netto_value = (brutto_value*100)/(100+100*vat_value);
  14.  
  15. ajaxPost();
  16. return false;
  17. });


Byłbym wdzięczny za pomoc.

Ten post edytował Savage.Mephisto 6.01.2016, 19:44:52
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


https://jsfiddle.net/az4gsq9L/

Resztę musisz sobie sam dorobić.
Go to the top of the page
+Quote Post
Savage.Mephisto
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 11
Dołączył: 24.01.2008

Ostrzeżenie: (0%)
-----


100-krotne dzięki za poświęcony czas i pomoc.

Tak na marginesie: w moim przypadku cena netto będzie liczona wg wzoru: cena brutto x 100 / 100 + 100 x stawka VAT.

Fragment kodu JS, który to realizuje:
  1. brutto.change(function() {
  2. var priceNetto = brutto.val()*100 / (100+100*vat.val())
  3. netto.val(priceNetto.toFixed(2))
  4. })


Pozdrawiam.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


pomijam babol u siebie (zamiast 1 dałem 100).

Ale cóż to za nowy sposób wyliczania netto ? khee ? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Savage.Mephisto
post
Post #5





Grupa: Zarejestrowani
Postów: 122
Pomógł: 11
Dołączył: 24.01.2008

Ostrzeżenie: (0%)
-----


Sposób jak sposób, ważne że działa ;-)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Ale wiesz o tym że cenę netto wylicza się brutto / 1.23 ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 00:53