Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Javascript Konfigurator - IE problem

[es] :: Javascript i AJAX :: Javascript Konfigurator - IE problem

[ Pregleda: 2123 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 867
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Javascript Konfigurator - IE problem30.07.2008. u 15:15 - pre 158 meseci
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.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Humanity d.o.o.
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.

Sajt: www.nikolaposa.in.rs


+33 Profil

icon Re: Javascript Konfigurator - IE problem30.07.2008. u 16:14 - pre 158 meseci
Probaj da umesto te funkcije Number() koristish parseInt() za prebacivanje stringa u broj... Mozhda je to zbunilo IE...
 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 867
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: Javascript Konfigurator - IE problem30.07.2008. u 16:39 - pre 158 meseci
Probao sam ne pomaze...

Da li ima neki debugger za IE kao sto ima recimo FireBug za firefox ?


 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Javascript Konfigurator - IE problem30.07.2008. u 18:29 - pre 158 meseci
jednostavno dodaj svakom elementu odgovarajuci id i onda citaj/pisi vrednosti pomocu getElementById("id-tog-elementa").value, to ce (provereno) raditi u svim browserima.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Humanity d.o.o.
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.

Sajt: www.nikolaposa.in.rs


+33 Profil

icon Re: Javascript Konfigurator - IE problem30.07.2008. u 20:05 - pre 158 meseci
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.
 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 867
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: Javascript Konfigurator - IE problem30.07.2008. u 23:00 - pre 158 meseci
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';


}



 
Odgovor na temu

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

Član broj: 37813
Poruke: 1115
*.dynamic.sbb.rs.

Sajt: www.gvozden.info


+67 Profil

icon Re: Javascript Konfigurator - IE problem30.07.2008. u 23:27 - pre 158 meseci
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


 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 867
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: Javascript Konfigurator - IE problem30.07.2008. u 23:39 - pre 158 meseci
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 :(
 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 867
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: Javascript Konfigurator - IE problem31.07.2008. u 00:06 - pre 158 meseci
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;
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Javascript Konfigurator - IE problem31.07.2008. u 04:12 - pre 158 meseci
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);

 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 867
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: Javascript Konfigurator - IE problem31.07.2008. u 10:59 - pre 158 meseci
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...
Prikačeni fajlovi
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Humanity d.o.o.
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.

Sajt: www.nikolaposa.in.rs


+33 Profil

icon Re: Javascript Konfigurator - IE problem31.07.2008. u 12:19 - pre 158 meseci
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...
Prikačeni fajlovi
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Javascript Konfigurator - IE problem31.07.2008. u 14:01 - pre 158 meseci
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...
 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 867
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: Javascript Konfigurator - IE problem31.07.2008. u 16:27 - pre 158 meseci
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 !
 
Odgovor na temu

[es] :: Javascript i AJAX :: Javascript Konfigurator - IE problem

[ Pregleda: 2123 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.