Avatar billede avnes Nybegynder
24. juni 2001 - 18:20 Der er 7 kommentarer og
1 løsning

Kode virker ikke i Netscape

Denne kode virker godt i Internet Explorer 5.x, men ikke i Netscape 4.x. Det kommer ingen fejlmeddelelser i Netscape, min html form felter opdateres ikke.
Koden blir fyret af ved hjlp av onChange(this);
(selv om jeg ikke bruger this objektet):

function get_total_points(what) {
var Cpf = 2;
var Cc = 250;
var Hpf = 2;
var Hc = 250;
var R1pf = 1;
var R1c = 150;
var R2pf = 2;
var R2c = 150;
var R3pf = 1;
var R3c = 150;
var RCpf = 2;
var RCc = 250;
var Tpf = 1;
var Tc = 250;
tasktype = document.forms[0].elements[11].value;
pointfactor = document.forms[0].elements[19].value;
if (tasktype == \'Customer\') {
    document.forms[0].elements[19].value = Cpf;
    document.forms[0].elements[20].value = document.forms[0].elements[17].value * Cpf;
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * Cc;
    }
else if (tasktype == \'Helpdesk\') {
    document.forms[0].elements[19].value = Hpf;
    document.forms[0].elements[20].value = document.forms[0].elements[18].value * Hpf;
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * Hc;
    }
else if (tasktype == \'Other\') {
    var Opf = prompt(\"How many points per hour ?\");
    document.forms[0].elements[19].value = Opf
    document.forms[0].elements[20].value = document.forms[0].elements[17].value * Opf;
    var cashperpoint = prompt(\"How much cash per point ?\");
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * cashperpoint;
    }
else if (tasktype == \'Remote 1\') {
    document.forms[0].elements[19].value = R1pf;
    document.forms[0].elements[20].value = document.forms[0].elements[18].value * R1pf;
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * R1c;
    }
else if (tasktype == \'Remote 2\') {
    document.forms[0].elements[19].value = R2pf;
    document.forms[0].elements[20].value = document.forms[0].elements[18].value * R2pf;
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * R2c;
    }
else if (tasktype == \'Remote 3\') {
    document.forms[0].elements[19].value = R3pf;
    document.forms[0].elements[20].value = document.forms[0].elements[18].value * R3pf;
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * R3c;
    }
else if (tasktype == \'Remote Call Recieved\') {
    document.forms[0].elements[19].value = RCpf;
    document.forms[0].elements[20].value = document.forms[0].elements[18].value * RCpf;
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * RCc;
    }
else if (tasktype == \'Time off\') {
    document.forms[0].elements[19].value = Tpf;
    document.forms[0].elements[20].value = document.forms[0].elements[17].value * (- Tpf);
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * Tc;
    }
}
Avatar billede jakoba Nybegynder
24. juni 2001 - 18:43 #1
Det kan muligvis være streng versus tal igen.
Prøv idet du ganger at sætte den variabel der er defineret som et tal forrest.

dvs:
    document.forms[0].elements[20].value = Cpf * document.forms[0].elements[17].value;
istedet for:
    document.forms[0].elements[20].value = document.forms[0].elements[17].value * Cpf;

Det kunne også være værd at checke:
Står der blanktegn foran eller bagved værdien i document.forms[0].elements[11].value.
( test evt med  alert(\">\" +document.forms[0].elements[11].value +\"<\"); )
Avatar billede jakoba Nybegynder
24. juni 2001 - 18:48 #2
Dine variable  \"tasktype\" og \"pointfactor\" bliver ikke erklæret lokale til routinen (med var foran). Kunne det være du har noget kode udenfor der piller i dem?

mvh JakobA
Avatar billede avnes Nybegynder
24. juni 2001 - 18:54 #3
Nej, dette er faktisk hele koden.
Ved lidt debugging ser jeg at problemet er if-sætningene. Netscape kan ikke finde ud af hvilken if der skal leses, så måske er det linjen tasktype = document.forms[0].elements[11].value;
der er problemet ????
\'tasktype\' er en html SELECT :

<SELECT NAME=\"190_PS_FORM_TASKS2_2165821.DEFAULT.TASKTYPE.01\" SIZE=\"1\">
<OPTION VALUE=\"Customer\">Customer
<OPTION VALUE=\"Helpdesk\">Helpdesk
<OPTION VALUE=\"Other\">Other
<OPTION VALUE=\"Remote 1\">Remote 1
<OPTION VALUE=\"Remote 2\">Remote 2
<OPTION VALUE=\"Remote 3\">Remote 3
<OPTION VALUE=\"Remote Call Recieved\">Remote Call Recieved
<OPTION VALUE=\"Time off\">Time off
</SELECT>


Nogle ideer ?
Avatar billede jakoba Nybegynder
24. juni 2001 - 19:01 #4
hvad sagde:
alert(\">\" +document.forms[0].elements[11].value +\"<\");

hvis den siger noget fornuftigt så sæt en alert ind i den tilsvarende if sætning.

eg:
if (tasktype == \'Customer\') {
alert(\"Customer: \"+Cpf+\",\"+document.forms[0].elements[17].value
+\",\"+document.forms[0].elements[17].value );
    document.forms[0].elements[19].value = Cpf;
    document.forms[0].elements[20].value = document.forms[0].elements[17].value * Cpf;
    document.forms[0].elements[22].value = document.forms[0].elements[20].value * Cc;
    }
Avatar billede jakoba Nybegynder
24. juni 2001 - 19:04 #5
Ja, det hjalp.

var tmp = document.forms[0].elements[11].selectedIndex
tasktype = document.forms[0].elements[11].options[tmp].value;

i en selectbox lægger IE den valgte value ud til os i options objektet. NS forlanger vi selv skal gå in og hente den i options-arrayet.

mvh JakobA
Avatar billede avnes Nybegynder
24. juni 2001 - 19:06 #6
JakobA:
alert siger: >null<
Se min kommentar ovenfor om HTML select og if-sætninger. det er nok det der er problemet.
tasktype = document.forms[0].elements[11].value;
virker tydeligvis ikke i Netscape. Hvad kan jeg bruge istedenfor .value ??? Er det ikke noget der hedder selectedIndex eller noget ?
Avatar billede avnes Nybegynder
24. juni 2001 - 19:09 #7
Takk for all hjælp :-)
Avatar billede jakoba Nybegynder
24. juni 2001 - 19:17 #8
Selv tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester