Pokud je níže uvedený javascript vložený jako obsah <script>XXXXXX</script>, pak normálně funguje:
nastaví ve formuláři u vstupních polí ovladače onkeyup=kalkuluj (Ten při kláves.vstupu přepočítává obsah výstupních <SPANů>.
Bohužel nemůžu tag <script> použít, jedině nějaké inline řešení, tj. dovnitř nějakého tagu (na webgarden povoleného)
Napadlo mě vložit js do tagu img:
<IMG src="xxxx" style="display:none" onload="XXXXXX">
JS se sice spustí, a při kontrole Firebug ukázal, že INPUTyu mají správně onkeyup=kalkuluj
!!! Přesto žádná reakce na stisk kláves !!!
Něco jsem přehlédl ???
function kalkuluj(){
var liveminimum = 3126;
var bytminimum = 4597;
var untouch = liveminimum + bytminimum;
if(document.getElementById('mzdacista').value){
var mzdacista = document.getElementById('mzdacista').value;
}
else{
var mzdacista = 0;
}
if(document.getElementById('dluznik').value){
var dluznik = document.getElementById('dluznik').value;
}
else{
var dluznik = 0;
}
if(document.getElementById('manzelka').value){
var manzelka = document.getElementById('manzelka').options[document.getElementById('manzelka').selectedIndex].value;
}
else{
var manzelka = 0;
}
if(document.getElementById('deti').value){
var deti = document.getElementById('deti').value;
}
else{
var deti = 0;
}
var dluznikuntouch = untouch/3*2*dluznik;
var manzelkauntouch = untouch/3*2/4*manzelka;
var detiuntouch = untouch/3*2/4*deti;
var basicuntouch = Math.ceil(dluznikuntouch + manzelkauntouch + detiuntouch);
if(basicuntouch>mzdacista){ basicuntouch = mzdacista; }
var restofmoney = mzdacista - basicuntouch;
var slozka3 = mzdacista - basicuntouch - untouch;
if(slozka3<0){ slozka3 = 0; }
var slozkax = mzdacista - basicuntouch - slozka3;
var slozkax1 = slozkax - 1;
var slozkax2 = slozkax - 2;
if(delitelnost(slozkax,3)){
var slozka2 = slozkax;
}else{
if(delitelnost(slozkax1,3)){
var slozka2 = slozkax1;
}else{
var slozka2 = slozkax2;
}
}
var delenec = slozka2/3;
var mzdakvyp = parseInt(basicuntouch) + parseInt(delenec);
var oddluzeni = mzdacista - mzdakvyp;
if(oddluzeni < 0) { oddluzeni = 0; }
var totalsplatky = oddluzeni*5*12;
var maxdluh = totalsplatky/0.3;
document.getElementById('sem1').innerHTML = addCommas(oddluzeni);
document.getElementById('sem2').innerHTML = addCommas(mzdakvyp);
document.getElementById('sem3').innerHTML = addCommas(totalsplatky);
}
function delitelnost(co,cim) {
var zbytek;
zbytek = co % cim;
if (zbytek == 0) {
return true;
}
else {
return false;
}
}
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ' ' + '$2');
}
return x1 + x2;
}
if(document.getElementById('kalkulacka')){
var inputs = document.getElementsByTagName('input');
for (var ii = 0; ii < inputs.length; ii++) {
inputs[ii].onkeyup = kalkuluj;
}
var selects = document.getElementsByTagName('select');
for (var yy = 0; yy < selects.length; yy++) {
selects[yy].onchange = kalkuluj;
}
}
FF / VIEW SOURCE CHART OF stránka otevřená v prohlížeči:
......... FORMulář ..........
<div class="content_part">
<div class="file">
<style>
table#kalkulacka{ border: 5px solid #e7e7e7; border-collapse: collapse;}#kalkulacka th, #kalkulacka td{ border: 1px solid #e7e7e7; padding: 4px 1em;}#kalkulacka th{ text-align: left;}#kalkulacka td{ text-align: right;}
</style>
<form action="javascript:void 0" method="post">
<div id="aroundkalkule" style="margin: 10px;">
<table id="kalkulacka">
<tbody>
<tr>
<th>
Čistá mzda (měsíční)
</th>
<td>
<input id="mzdacista" class="numbers required" name="mzdacista" value="" type="text">
<input id="dluznik" class="numbers required" name="dluznik" value="1" disabled="disabled" type="hidden">
</td>
</tr>
<tr>
<th>
Manžel/ka
</th>
<td>
<select name="manzelka" id="manzelka">
<option value="0" selected="selected">
ne
</option>
<option value="1">
ano
</option>
</select>
</td>
</tr>
<tr>
<th>
Děti a další vyživované osoby
</th>
<td>
<input id="deti" class="numbers" name="deti" value="" type="text">
</td>
</tr>
<tr>
<th colspan="2" style="text-align: center;">
<input style="height: 20px;" value="Výsledek" name="calculate" id="calculate" type="button">
</th>
</tr>
<tr>
<th>
Měsíční splátka pro oddlužení
</th>
<td>
<span id="sem1">
0
</span>
</td>
</tr>
<tr>
<th>
Mzda k výplatě
</th>
<td>
<span id="sem2">
0
</span>
</td>
</tr>
<tr>
<th>
Celková výše splátek pro oddlužení za 5 let
</th>
<td>
<span id="sem3">
0
</span>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
</div>
......... JS ..........
<div class="content_part">
<div class="file">
<br>
<img src="http://vojtoma.mypage.cz/_/img/loader.gif" style="display: none;" onload="function kalkuluj(){ var liveminimum = 3126; var bytminimum = 4597; var untouch = liveminimum + bytminimum; if(document.getElementById('mzdacista').value){ var mzdacista = document.getElementById('mzdacista').value; } else{ var mzdacista = 0; } if(document.getElementById('dluznik').value){ var dluznik = document.getElementById('dluznik').value; } else{ var dluznik = 0; } if(document.getElementById('manzelka').value){ var manzelka = document.getElementById('manzelka').options[document.getElementById('manzelka').selectedIndex].value; } else{ var manzelka = 0; } if(document.getElementById('deti').value){ var deti = document.getElementById('deti').value; } else{ var deti = 0; } var dluznikuntouch = untouch/3*2*dluznik; var manzelkauntouch = untouch/3*2/4*manzelka; var detiuntouch = untouch/3*2/4*deti; var basicuntouch = Math.ceil(dluznikuntouch + manzelkauntouch + detiuntouch); if(basicuntouch>
mzdacista){ basicuntouch = mzdacista; } var restofmoney = mzdacista - basicuntouch; var slozka3 = mzdacista - basicuntouch - untouch; if(slozka3
<0){ slozka3 = 0; } var slozkax = mzdacista - basicuntouch - slozka3; var slozkax1 = slozkax - 1; var slozkax2 = slozkax - 2; if(delitelnost(slozkax,3)){ var slozka2 = slozkax; }else{ if(delitelnost(slozkax1,3)){ var slozka2 = slozkax1; }else{ var slozka2 = slozkax2; } } var delenec = slozka2/3; var mzdakvyp = parseInt(basicuntouch) + parseInt(delenec); var oddluzeni = mzdacista - mzdakvyp; if(oddluzeni
< 0) { oddluzeni = 0; } var totalsplatky = oddluzeni*5*12; var maxdluh = totalsplatky/0.3; document.getElementById('sem1').innerHTML = addCommas(oddluzeni); document.getElementById('sem2').innerHTML = addCommas(mzdakvyp); document.getElementById('sem3').innerHTML = addCommas(totalsplatky);} function delitelnost(co,cim) {var zbytek;zbytek = co % cim;if (zbytek == 0) { return true;}else { return false;}} function addCommas(nStr){ nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length >
1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ' ' + '$2'); } return x1 + x2;} if(document.getElementById('kalkulacka')){ var inputs = document.getElementsByTagName('input'); for (var ii = 0; ii
< inputs.length; ii++) { inputs[ii].onkeyup = kalkuluj; } var selects = document.getElementsByTagName('select'); for (var yy = 0; yy
< selects.length; yy++) { selects[yy].onchange = kalkuluj; } }">
</div>
</div>