Article View: pl.comp.lang.javascript
Article #51046Jak to rozwiązać?
From: S
Date: Tue, 20 Mar 2012 09:30
Date: Tue, 20 Mar 2012 09:30
69 lines
3703 bytes
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-mailShow 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