Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][JavaScript] Dynamiczne dodawanie inputów a zliczanie i działanie CSS
Forum PHP.pl > Forum > Przedszkole
d0m1n1k_
Witam,
pisząc aplikację do wystawiania faktur napotkałem pewien problem. A w zasadzie garść problemów.

Zależy mi na wyglądzie i responsywności dlatego korzystam z bibliotek CSS które dają wszystko czego potrzebuję.
Niestety wystawianie faktur wymaga abym mógł dynamicznie dodawać zestawy inputów do dodawania pozycji na fakturze.
I tu zaczęły się schody.

Inputy są dodawane, jednak nie są "tak piękne" jak być powinny. Wygląda na to, jakby skrypt brał tylko najpotrzebniejsze dane z css'a a te mniej istotne olewał.

  1. <div class="md-card-content">
  2. <div class="uk-grid" id="myTabContent" data-uk-grid-margin>
  3. <!-- Tu podawane są nowe pozycje -->
  4. </div>
  5. </div>
  6.  
  7. <script type='text/javascript'>
  8. var z = 2;
  9. //<![CDATA[
  10. $(function () {
  11.  
  12. $("#btn").click(function () {
  13. $('#myTabContent').append(
  14. '<div class="uk-width-medium-1-10"><div class="uk-form-row"> <input name="fvat_pozycja_lp_'+(z)+'" type="text" value="'+(z)+'." class="md-input" /></div></div><div class="uk-width-medium-2-10"><div class="uk-form-row"> <input name="fvat_pozycja_towar_'+(z)+'" type="text" class="md-input" /></div></div><div class="uk-width-medium-1-10"><div class="uk-form-row"><input name="fvat_pozycja_ilosc_'+(z)+'" type="text" onkeyup="licz_'+(z)+'(this.form)" class="md-input" /></div></div><div class="uk-width-medium-2-10"><div class="uk-form-row"><input name="fvat_pozycja_netto_'+(z)+'" type="text" onkeyup="licz_'+(z)+'(this.form)" class="md-input" /></div></div><div class="uk-width-medium-1-10"><div class="uk-form-row"><select name="fvat_pozycja_vat_1'+(z)+' id="select_demo_1" onkeyup="licz_'+(z)+'(this.form)" data-md-selectize><option value="1.08">8%</option><option value="1.23">23%</option></select></div></div><div class="uk-width-medium-2-10"><div class="uk-form-row"><input name="fvat_pozycja_brutto_'+(z)+'" type="text" class="md-input" /></div></div>');
  15. console.log($(".searchInput"));
  16. z++;
  17. $(".searchInput").autocomplete({
  18. source: availableTags
  19. });
  20. });
  21. });
  22. //]]>
  23. </script>


Druga sprawa to zliczanie "w locie" działania (ilość x vat x cena netto) = wartość brutto, jak to poprawnie wykonać bo na chwilę obecną udało mi się tylko takie działanie dla pierwszego pola (które jest od początku), ale też nie działa wybitnie dobrze...

  1. <script language="javascript">
  2. function licz_1(x){
  3. x.fvat_pozycja_brutto_1.value=(x.fvat_pozycja_vat_1.value)*(+x.fvat_pozycja_netto_1.value)*(+x.fvat_pozycja_ilosc_1.value)
  4. }
  5. </script>


Będę bardzo wdzięczny za każdą pomoc.
Pozdrawiam!
Randallmaster
Może się przyda: http://jsfiddle.net/sqrrt/3/

Jeżeli chodzi o style sprawdź czy odpowiednio je zaimplementowałeś.

Zliczanie co to znaczy że nie wybitnie działa?
d0m1n1k_
Cytat(Randallmaster @ 21.09.2015, 18:17:48 ) *
Jeżeli chodzi o style sprawdź czy odpowiednio je zaimplementowałeś.


Nie implementuję przez skrypt a jedynie tradycyjnie w <head></head>

Cytat(Randallmaster @ 21.09.2015, 18:17:48 ) *
Zliczanie co to znaczy że nie wybitnie działa?


To znaczy, że:
Wpisując pierwszą wartość do input'a ilość (np. 10), w polu wartość brutto pojawia się 0.
Wpisując drugą wartość (np. 10), nadal widzimy 0 w polu wartości brutto.
Wybierając wartość vat (np. 23%), nadal jest zero.
Potem klikając w pole Wartość brutto nic się nie dzieje (bez tego nic się nie pojawi w następnym kroku),
ale dzięki temu, po zmianie wartości w którymś z dwóch pierwszych inputach (powiedzmy pierwszy zamiast 10 dajemy 100) pojawia się wynik (1230).

Pisząc, że działa (nie)wybitnie, a raczej upośledzenie mam na myśli powyższe zachowanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.