Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 4.282 pregleda

Najnovija ↓

Javascript Konfigurator - IE problem 30.07.2008. u 16:15 · pre 222 meseca #1
Imam mali problem sa skriptom koju sam napisao za online konfigurator....

Code:

function konfig(objekat, cijenaartikla) {

    eval("document.konfigurator." + objekat + "cijena.value = cijenaartikla");
    
    var monitor = document.konfigurator.monitorcijena.value;
    var maticna = document.konfigurator.maticnacijena.value;
    var procesor = document.konfigurator.procesorcijena.value;
    var ventilator = document.konfigurator.ventilatorcijena.value;
    var harddisk = document.konfigurator.harddiskcijena.value;
    var memorija = document.konfigurator.memorijacijena.value;
    var graficka = document.konfigurator.grafickacijena.value;
    var tvkartica = document.konfigurator.tvkarticacijena.value;
    var cddvd = document.konfigurator.cddvdcijena.value;
    var stampac = document.konfigurator.stampaccijena.value;
    var skener = document.konfigurator.skenercijena.value;
    var faxmodem = document.konfigurator.faxmodemcijena.value;
    var multimedija = document.konfigurator.multimedijacijena.value;
    var kuciste = document.konfigurator.kucistecijena.value;
    var mis = document.konfigurator.miscijena.value;
    var tastatura = document.konfigurator.tastaturacijena.value;    
    var zvucnici = document.konfigurator.zvucnicicijena.value;
    var zvucna = document.konfigurator.zvucnacijena.value;
    var floppy = document.konfigurator.floppycijena.value;
    var igracki = document.konfigurator.igrackicijena.value;
    var ups = document.konfigurator.upscijena.value;
    var hub = document.konfigurator.hubcijena.value;
    var mreza = document.konfigurator.mrezacijena.value;
    
    var novasuma = Number(monitor) + Number(maticna) + Number(procesor) + Number(ventilator) + 
Number(harddisk) + Number(memorija) + Number(graficka) + Number(tvkartica) + Number(cddvd) + Number(stampac) + 
Number(skener) + Number(faxmodem) + Number(multimedija) + Number(kuciste) + Number(mis) + Number(tastatura) + 
Number(zvucnici) + Number(zvucna) + Number(floppy) + Number(igracki) + Number(ups) + Number(hub) + Number(mreza);
    
    document.konfigurator.suma.value = novasuma + ' KM';


}



Imam formu 'konfigurator' i u njoj nekoliko <select> objekata i <input> polja.


Iz <select> polja kada se odabere neki item npr. iz polja Maticna Ploca odabere se neki item i onda se poziva funkcija konfig() koja salje ime input polja koje treba da se izmjeni i vrijednost odabranog itema iz select polja.


U firefox-u sve radi bez problema ali u IE nece ni da mrdne...

Probavao sam da u kodu zamjenim document.konfigurator sa window.document.konfigurator ali ne pomaze, takodje probao sam i document.all.konfigurator. ali nista od toga nije radilo u IE.
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: Javascript Konfigurator - IE problem 30.07.2008. u 17:14 · pre 222 meseca #2
Probaj da umesto te funkcije Number() koristish parseInt() za prebacivanje stringa u broj... Mozhda je to zbunilo IE...
Re: Javascript Konfigurator - IE problem 30.07.2008. u 21:05 · pre 222 meseca #5
Citat:
ColdKeyboard Da li ima neki debugger za IE kao sto ima recimo FireBug za firefox ?

Koliko ja znam, kad se desi neka greshka na stranici IE o tome obavesti u status bar-u, u donjem levom uglu, i tu onda mozhesh da pogledash u chemu je stvar kad dvokliknesh na tu greshku...

btw Evo ovde ima neshto o debugger-u za IE: http://www.jonathanboutelle.co...s/2006/01/howto_debug_jav.html.
Re: Javascript Konfigurator - IE problem 31.07.2008. u 00:00 · pre 222 meseca #6
Evo promjenio sam da bude getelementbyid() ali i dalje ne radi u IE :S


Evo kako sada kod izgleda...

Code:

function konfig(objekat, cijenaartikla) {

    document.getElementById(objekat + "cijena").value = cijenaartikla;
    
    //Sumiramo sve cijene
    var monitor = document.getElementById("monitorcijena").value;
    var maticna = document.getElementById("maticnacijena").value;
    var procesor = document.getElementById("procesorcijena").value;
    var ventilator = document.getElementById("ventilatorcijena").value;
    var harddisk = document.getElementById("harddiskcijena").value;
    var memorija = document.getElementById("memorijacijena").value;
    var graficka = document.getElementById("grafickacijena").value;
    var tvkartica = document.getElementById("tvkarticacijena").value;
    var cddvd = document.getElementById("cddvdcijena").value;
    var stampac = document.getElementById("stampaccijena").value;
    var skener = document.getElementById("skenercijena").value;
    var faxmodem = document.getElementById("faxmodemcijena").value;
    var multimedija = document.getElementById("multimedijacijena").value;
    var kuciste = document.getElementById("kucistecijena").value;
    var mis = document.getElementById("miscijena").value;
    var tastatura = document.getElementById("tastaturacijena").value;    
    var zvucnici = document.getElementById("zvucnicicijena").value;
    var zvucna = document.getElementById("zvucnacijena").value;
    var floppy = document.getElementById("floppycijena").value;
    var igracki = document.getElementById("igrackicijena").value;
    var ups = document.getElementById("upscijena").value;
    var hub = document.getElementById("hubcijena").value;
    var mreza = document.getElementById("mrezacijena").value;
    
    var novasuma = parseInt(monitor) + parseInt(maticna) + parseInt(procesor) + parseInt(ventilator) + 
parseInt(harddisk) + parseInt(memorija) + parseInt(graficka) + parseInt(tvkartica) + parseInt(cddvd) + 
parseInt(stampac) + parseInt(skener) + parseInt(faxmodem) + parseInt(multimedija) + parseInt(kuciste) + 
parseInt(mis) + parseInt(tastatura) + parseInt(zvucnici) + parseInt(zvucna) + parseInt(floppy) + parseInt(igracki) + parseInt(ups) + parseInt(hub) + parseInt(mreza);
    
    document.getElementById("suma").value = novasuma + ' KM';


}


Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: Javascript Konfigurator - IE problem 31.07.2008. u 00:27 · pre 222 meseca #7
Moraćeš da pronađeš u kom delu koda se nalazi greška.

Ukoliko nemaš debuger onda stavi alert iza određenog bloka koda pa prati...

Moguće je da neki element ne postoji u formi... mada bi to trebalo da se odrazi i na firefox.

Ja bih ovo provukao kroz petlju, možda bih koristio i array ( konfig[mem] ) i obavezno promenljivu za zbir

onda bih koristio test izraze if (konfig[mem].value) zbir = zbir + konfig[mem].value

Potpis
Moj Veb Sajt HostCentar Blog
Aleksinac Južna Srbija TimeOut
Re: Javascript Konfigurator - IE problem 31.07.2008. u 00:39 · pre 222 meseca #8
Znaci ubacio sam ovaj Microsoft Script Debugger i recimo pokrenem ovakvu skriptu


Code:

function konfig(objekat, cijenaartikla) {
    if (document.getElementById) {

        document.write('objekat - cijenaartikla');
    }
}



I IE izbaci gresku odmah na prvoj liniji tj. if (document.getElementById) {

dok u FF fino ispise ovaj tekst... :S

Ne znam u cemu je problem :(
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: Javascript Konfigurator - IE problem 31.07.2008. u 01:06 · pre 222 meseca #9
Koliko sam primjetio u FF radi kako treba li IE sa debuggerom prijavljuje 'document.getElementById() is null or not an object...' :S

Kako ovo da rjesim :(

Znaci IE zablentavi odmah na pocetku kod

document.getElementById(objekat).value = cijenaartikla;
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: Javascript Konfigurator - IE problem 31.07.2008. u 05:12 · pre 222 meseca #10
getElementById ne moze da "zablentavi" ukoliko element sa tim id-om postoji.

recimo da imas ovakav html:
Code:

<input type="text" id="monitorcena" name="monitorcena" />
<input type="text" id="maticnacena" name="maticnacena" />
<input type="text" id="procesorcena" name="procesorcena" />

ukoliko hoces da saberes vrednosti u ta tri textboxa to mozes da uradis ovakvim javascriptom:
Code:

var fields = ["monitorcena", "maticnacena", "procesorcena"];
var sum = 0, field = null;

for (var i = 0; i < fields.length; i++)
{
   if (field = document.getElementById(fields[i])) sum += parseInt(fields[i].value);
}

alert(sum);
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Javascript Konfigurator - IE problem 31.07.2008. u 11:59 · pre 222 meseca #11
Znaci ne mogu da vjerujem... probao sam sve sto ste mi ovdje napisali i sve radi u FF ali nista u IE :S

Ne znam vise u cemu bi mogao biti problem...


Evo okacio sam .html fajl pa ako nekome nije mrsko da pogleda, ja nisam bas puno radio sa JS tako da mozda ne vidim neku pocetnicku gresku...
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: Javascript Konfigurator - IE problem 31.07.2008. u 13:19 · pre 222 meseca #12
Evo modifikovao sam malo onaj tvoj kod, i napisao sam primer samo za tri reda tabele, pa ti ako hocesh samo dodaj i za ostale komponente. Sad radi i u Firefox-u i u IE-u... Obrati pazhnju da sam sada za svaki onaj select definisao dogadjaj onChange, pa onda u scriptu uzimam value u zavisnosti od izabrane opcije. Ako ti nije jasno shta sam sve radio i shta sam sve izmenio, ti slobodno pitaj...

Okachio sam .html fajl, pa ti isprobaj...
Re: Javascript Konfigurator - IE problem 31.07.2008. u 15:01 · pre 222 meseca #13
razlog sto ti nije radilo u IE je sto taj browser nema onclick handler za option elemente. ispravan nacin je da koristis onchange na select elementu, kao sto je raynor uradio.

evo imam malo slobodnog vremena, pa sam ti napisao funkciju koja ce da ti skrati kucanje, dovoljno je samo da svakom selelect boxu dodas class="changeprice" i svakom textboxu class="price" (znaci ne treba ti onchange ili bilo koji drugi handler), i ubacis ovaj javascript:
Code:

$(function()
{
   var textbox = $('.price');

   $('.changeprice').each(function(i)
   {   
        $(this).change(function()
        {
           $(textbox[i]).val(this.options[this.selectedIndex].value);
           
           var sum = 0;
           textbox.each(function(){ sum += parseInt( $(this).val() ); });

           $('#totalsum').val( sum + ' KM');    // ovde samo stavi id textboxa u koji ce da ti pise ukupna cena
        });
   });
});

e da, ova scripta zahteva jQuery biblioteku (toliko sam navikoa na nju da sam zaboravio da programiram DOM na klasican nacin :p)



p.s. ovaj kod nisam isprobavao ali bi trebalo da radi...
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Javascript Konfigurator - IE problem 31.07.2008. u 17:27 · pre 222 meseca #14
Hvala svima na pomoci konacno sam natjerao skriptu da radi i u IE :)

Koristio sam ovaj kod koji je Raynor napisao posto mi se on nekako cini najjednostavniji (ako ne racunam includovanje jquery-a samo radi ove skripte :))


Sreca pa sam prije nekad naucio regexp pa se nisam morao muciti puno oko prepravljanja koda :)


Hvala svima jos jednom !
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme