Avatar billede krogstrup Nybegynder
23. august 2007 - 09:34 Der er 12 kommentarer og
1 løsning

Javascript kode virker i IE7 men ikke i IE6

Kan nogen af jer Javascript eksperter hjælpe mig til at forstå hvorfor nedenstående javascript fungerer ganske fint ved afvikling i IE7 (vist nok også FF) men IKKE i IE6 ?

<a href="java script:void(0);" onClick="document.getElementById('f').getStockModule.value='True'; validate_edit_product(document.getElementById('f'));">Klik her</a>
Avatar billede w13 Novice
23. august 2007 - 14:43 #1
Fejlen kunne ikke tænkes at ligge i den funktion, som vi ikke får lov at se?
Avatar billede krogstrup Nybegynder
23. august 2007 - 15:11 #2
Det er muligt... jeg overvejer lidt om det måske er måden jeg sender form objectet til javascriptet der ikke fungerer i IE6 ?
Avatar billede krogstrup Nybegynder
23. august 2007 - 15:11 #3
Her er den funktion der kaldes:

<script language="javascript">
function validate_edit_product(frm) {
    var send,varAlert;
    varAlert = ""

    if (frm.productname.value == "") {
        varAlert = varAlert + "- Navn\n";
        send = false;
    }
           
    if (!strPatAmount.test(frm.price.value) ) {
        varAlert = varAlert + "- Normal pris\n";
        send = false;
    }
   
    if (frm.price_offer.value != "" && !strPatAmount.test(frm.price_offer.value)) {
        varAlert = varAlert + "- Tilbudspris\n";
        send = false;
    }
   
    if (frm.image1.value != "" && right(frm.image1.value,3).toLowerCase() != "jpg" && right(frm.image1.value,4).toLowerCase() != "jpeg") {
        varAlert = varAlert + "- Billeder skal være af typen 'JPG'\n";
        send = false;
    }
   
    if (frm.pagebindings_pageId1.value == "") {
        varAlert = varAlert + "- Produktside 1\n";
        send = false;
    }
   
    if (frm.has_variants.value == "True") {
        <% for i = 1 to max_product_variants %>
        if (frm.variant<%=i%>_option_value1.value != "" && frm.variant_title<%=i%>.value == "") {
            varAlert = varAlert + "- Overskrift for variant <%=i%>\n";
            send = false;
        }
        <% next %>
    }

    if (send == false) {
        alert("Følgende felter skal udfyldes korrekt:\n\n" + varAlert);
        return false;
    }
    else {
        frm.onsubmit();
        frm.submit();
    }
}
</script>
Avatar billede krogstrup Nybegynder
23. august 2007 - 15:12 #4
kan jeg referere til form objectet på en anden måde end document.getElementById('f') ?
Avatar billede w13 Novice
23. august 2007 - 15:17 #5
getElementById er normalt den mest hensigtsmæssige/korrekte.
Avatar billede krogstrup Nybegynder
23. august 2007 - 15:39 #6
jamen hvis det nu ikke virker i IE6, kan jeg jo blive tvunget til at benytte et alternativ ?!?
Avatar billede w13 Novice
23. august 2007 - 15:40 #7
Altså getElementById blev ikke indført i IE7 - det er flere versioner gammelt, så det kan ikke være det i sig selv, der er galt.
Avatar billede olebole Juniormester
23. august 2007 - 16:10 #8
<ole>

Hej Krogen  :)
Jeg tror, det er i formen, fejlen ligger. Der er ikke noget i koden, som ikke burde virke. Du bør dog bruge et validt script-tag:
    <script type="text/JavaScript">

- men derudover er der vist ikke noget. Jeg kan godtnok ikke se, variablen 'strPatAmount' bliver sat noget sted, men jeg går udfra, det sker i noget kode, vi ikke kan se her  =)

/mvh
</bole>
Avatar billede krogstrup Nybegynder
24. august 2007 - 13:42 #9
Hej Ole

Hvad tænker du på mere konkret når du siger at det muligvis er i formen at fejlen ligger? Jeg kan ikke rigtig gennemskue hvilken type fejl/syntaks der skulle bevirke at det virker i IE7 men ikke i IE6.
Avatar billede olebole Juniormester
24. august 2007 - 15:28 #10
Prøv lige at alert'e sådan:

function validate_edit_product(frm) {
    var send,varAlert;
    varAlert = ""
    alert(document.getElementById('f').getStockModule)

- jeg kunne forestille mig, den ikke rigtig holder. Hvis det er korrekt, kan du i stedet prøve:
    onClick="document.getElementsByName('getStockModule')[0].value='True';
Avatar billede krogstrup Nybegynder
13. september 2007 - 12:30 #11
hej igen

undskyld den laaange reaktionstid. Har super travlt for tiden. Den funktion som giver mig ovenstående problemer kommer til at udgå af applikationen, så jeg har besluttet at lade det ligge, da jeg desværre ikke har tid til at forfølge jagten på en løsning.

Anyway; mange tak for jeres indsats !

Smid et svar hvis du ønsker points :-)
Avatar billede w13 Novice
11. november 2007 - 16:19 #12
Jeg tror bare, du kan lukke her, Krogstrup. Opret selv et svar og accepter det.
Avatar billede krogstrup Nybegynder
11. november 2007 - 16:26 #13
hehe - du har nok ret :-)
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

IT-JOB