🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #51046

Jak to rozwiązać?

#51046
From: S
Date: Tue, 20 Mar 2012 09:30
69 lines
3703 bytes
Witam

Mam taki problem i nie wiem jak go ugryźć sensownie.
Chodzi o coś takiego:
Mam pola formularza netto, vat, brutto.
Założenie jest takie, że user wpisuje wartość netto, wybiera stawkę VAT i 
wylicza mu się wartość brutto.  I tu na razie nie ma problemu. Przy pomocy 
JQuery poradziłem sobie myślę w sposób dość prosty (kod na końcu postu)
Problem jednak w tym, że muszę to zrealizować też tak, że użytkownik może 
dodawać dowolną ilość wierszy z polami netto, vat, brutto i dla każdego z 
nich niezależnie oczywiście musi być wyliczona ta wartość brutto w 
zależności od podanej wartości netto i wybranej stawki VAT.
Jak to zrealizować sensownie? Jak można sklonować określone wiersze i nie 
mogąc określić z góry ich id wyliczyć tą cenę brutto?
Może ktoś ma jakiś pomysł? Może ktoś spotkał sie z takim problem i coś 
podpowie. Będę dozgonnie wdzięczny.
A niżej kod który sobie wystukałem aby obliczyć dla jednego z góry wiadomego 
wiersza.

$('#rate_int').live('change',function(){
     var vat_val = $('#rate_int').val();
     var netto = $('#cena_netto').val();

     if(netto == ''){
         alert("Musisz podać cenę netto!");
     }else{
                 if($('#cena_netto').val().match('^[0-9\.]+$')){
             var brutto = (((parseFloat(vat_val) * parseFloat(netto))/100) + 
parseFloat(netto)).toFixed(2);

             $('#cena_brutto').val(brutto);
                     var brutto2 = $('#cena_brutto').val();
             if(brutto2 == 'NaN'){
                             $('#rate_int').val('');
                             $('#cena_netto').val('');
                             $('#cena_brutto').val('');
                 alert("Wartość netto musi być wartością liczbową!");

             }
                 }else{
                     alert("Wartość netto musi być wartością liczbową!");
                 }
     }
});

  $('#cena_netto').live('change',function(){
      var vat_val = $('#rate_int').val();
      if(vat_val != ''){
        var netto = $('#cena_netto').val();
        var brutto = (((parseFloat(vat_val) * parseFloat(netto))/100) + 
parseFloat(netto)).toFixed(2);
         if($('#cena_netto').val().match('^[0-9\.]+$')){
             $('#cena_brutto').val(brutto);
                     var brutto2 = $('#cena_brutto').val();
             if(brutto2 == 'NaN'){
                             $('#rate_int').val('');
                             $('#cena_netto').val('');
                             $('#cena_brutto').val('');
                 alert("Wartość netto musi być wartością liczbową!");
             }
                    }else{
                     alert("Wartość netto musi być wartością liczbową!");
                 }
      }
  });


pozdrawiam
Sławek 
Technical Details
Message-ID: <jk9inp$f9g$1@news.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: "S" <atheist72@wp.pl>
Newsgroups: pl.comp.lang.javascript,pl.comp.www
Subject: Jak to rozwiązać?
Date: Tue, 20 Mar 2012 10:30:35 +0100
Organization: ICM, Uniwersytet Warszawski
Lines: 70
Message-ID: <jk9inp$f9g$1@news.icm.edu.pl>
NNTP-Posting-Host: 178-37-175-65.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: news.icm.edu.pl 1332235833 15664 178.37.175.65 (20 Mar 2012 09:30:33 GMT)
X-Complaints-To: usenet@news.icm.edu.pl
NNTP-Posting-Date: Tue, 20 Mar 2012 09:30:33 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 15.4.3538.513
X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3538.513
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit