Toon posts:

[IE/JS] Geen submit op Apple*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo!

Op een website heb ik een formuliertje wat in IE op een PC gewoon werkt.
Tijdens de submit worden een aantal checks/acties uitgevoerd middels javscript.
Er worden diverse velden met gegevens verstuurd alsmede een afbeelding.

De submitbutton:
code:
1
<input name="submitbut" type="button" class="buttonLang" onClick="javascript:moduleOpslaan();doSubmitOnce(document.forms.artikelen);return loadIt();" value="wijzigingen opslaan - 1x klikken">

De javascripts:

1) ModuleOpslaan()
* de waardes van de velden word geupdate:
(eigenlijk 12 velden, maar hier verkort weergegeven met 2 voorbeelden)
code:
1
2
3
4
5
function moduleOpslaan() {      
document.artikelen.artikel_naam.value = replaceTekst(document.artikelen.artikel_naam.value);
document.artikelen.artikel_jaar.value = replaceTekst(document.artikelen.artikel_jaar.value);
enz enz
}

Deze word gebruikt om de euro tekens te vervangen:
code:
1
2
3
4
5
6
7
8
9
10
11
function replaceTekst(entry) {
    out = "€"; 
    add = "&euro;"; 
    temp = "" + entry; 
    while (temp.indexOf(out)>-1) {
        pos= temp.indexOf(out);
        temp = "" + (temp.substring(0, pos) + add + 
        temp.substring((pos + out.length), temp.length));
    }
    return temp;
}

2) doSubmitOnce()
* maakt de button inactive tijdens submit
code:
1
2
3
4
5
6
7
8
9
function doSubmitOnce(Form)
{
    for(i=0;i<Form.length;i++)
    {
        var currentElement = Form.elements[i];
        if(currentElement.type.toLowerCase() == "button")
            currentElement.disabled = true;
    }
}

3) loadIt()
* deze functie checkt de filesize van afbeeldingVOOR het uploaden
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
img = new Image(); 
size = 0; 
img.onload = function() 
{ 
  size = img.fileSize; 
  checkthrough(); 
} 
function loadIt() 
{ 
  img.src = document.getElementById('artikel_afbeelding').value;
  return false; 
} 
function checkthrough() 
{ 
  if (document.artikelen.artikel_prijs_euros.value==0) {
  alert("Een prijs opgeven is verplicht");
  return false;
  }
  if (size>310000) {
  alert("Afbeelding kan maximaal 300 KB zijn, uw afbeelding is te groot. ");
  return false;
  }
  
  else this.artikelen.submit();

}

Het werkt in IE op een PC prachtig, maar in IE op een apple werkt de submit button gewoon niet, er gebeurt niets.

Mijn vraag aan welwillende benefactor met bi-platformale kennis:

Waarom werkt het niet op de apple, komt dat door de javascripts of is hier iets anders loos?
Het is een gewoon form, met een gewone submit button (die wel class="buttonLang" is en dus er anders uitziet) en ik kan niet ontdekken waarom het op een apple niet wil.

Erg bedankt voor de moeite dit te lezen, en dank aan iedereen die me met een tip in de juiste richting kan sturen.

Hans 8)7

[ Voor 5% gewijzigd door Verwijderd op 30-05-2006 14:01 . Reden: Details aangepast ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je hebt blijkbaar beschikking over IE op een apple (welke versies ben je uberhaupt op aan 't testen)?

Wat gebeurt er als je je aanroepen naar JS modulair opbouwt: maak een test-case met geen JS en voegt steeds JS toe totdat het niet meer werkt.

Het is pertinent niet de bedoeling dat jij je code neerplempt en een ander het maar oplost :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Dat was ook niet mijn bedoeling, ik plempte de code omdat er misschien dingen
in staan die specifiek op apple niet werken ;)

Ik zal het aanpakken zoals je suggereerde ;)

  • Maurits van Baerle
  • Registratie: Maart 2001
  • Niet online
Niet om het een of ander maar IE voor de Mac staat bekend als een rampzalige browser. Bovendien wordt hij vrijwel nauwelijks nog gebruikt aangezien Apple al jaren standaard Safari meeleverd en Firefox voor de Mac ook vrij populair is.

Als het dus een fout van IE-Mac is en jouw site het wel goed doet in IE-Win, Safari, Firefox, Opera etc. etc. zou je kunnen overwegen er niet zoveel moeite voor te doen.

IE voor MAC:
  • Is voor het laatst serieus geupdate in 2000(!)
  • Wordt niet standaard meegeleverd bij OS X en moet dus apart gedownload worden
  • Is door MS in 2003 al opgegeven en kan ook niet meer bij hen worden gedownload

[ Voor 24% gewijzigd door Maurits van Baerle op 30-05-2006 14:38 ]

Het grote: DAB+ digitale radio topic / IPv6 topic / OpenWRT topic


Verwijderd

Topicstarter
Kijk dat is ook erg intressante info,

dank maurits :D

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:47

crisp

Devver

Pixelated

Acties die je bij het (voor het) submitten wilt uitvoeren dien je vanuit de onsubmithandler van je form te doen. Sowieso is het erg handig om een referentie naar je form al vanuit de eventhandler mee te geven.
Ik zou geen meerdere functies in zo'n handler stoppen maar gewoon 1 functie die vervolgens de rest aanroept en false (submit wordt gecancelled) teruggeeft of true (de default submit wordt uitgevoerd - geen javascript voor nodig).
Verder: gebruik geen javascript: pseudo-protocol in eventhandlers, dat hoort daar niet.
Text replaces kan je het beste met een reguliere expressie doen.

Edit: ah wacht, je wilt ook nog images checken en dat kan alleen asynchroon natuurlijk. Bedenk trouwens dat de fileSize property sowieso IE-only is. Persoonlijk zou ik dat dan ook gewoon serverside afhandelen - scheelt je ook een hoop gedoe. (dat omzetten van die euro-tekens ook overigens, ik zie geen reden waarom dat clientside moet gebeuren)

[ Voor 26% gewijzigd door crisp op 30-05-2006 15:16 ]

Intentionally left blank

Pagina: 1