javascript werkt wel in firefox maar niet in chrome en ie9

Pagina: 1
Acties:
  • 562 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • williewonka03
  • Registratie: Augustus 2010
  • Laatst online: 16-06-2024
hallo allemaal,

nou de titel zegt het dus al, ik heb deze code:
JavaScript:
1
2
3
4
5
function extend(fields)
{
var formholder = fields
document.getElementById('commentform').innerHTML = document.getElementById('commentform').innerHTML + formholder;
}


en die roep ik op de volgende manier aan:
PHP:
1
echo "<p><input type='button' id='extra_field' value='extra image upload field' onChange='extend($fields)'></p>";


In firefox krijg ik keurig de extra velden ingevoegd, maar in zowel ie9 als chrome gebeurt er helemaal niks.

ik heb al een hoop gegoogled en ook gevonden maar geen van alle is van toepassing op mijn specifieke code. kan iemand mij in de goede richting sturen? alvast bedankt!

[ Voor 8% gewijzigd door williewonka03 op 08-11-2012 22:13 ]


Acties:
  • 0 Henk 'm!

  • Blamm
  • Registratie: Februari 2001
  • Laatst online: 18-07 08:20

Blamm

Niet meer Smart

Zonder diep in de code te kijken, het lijkt er op of je een ; mist op regel 3 van je JS

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:24

crisp

Devver

Pixelated

Blamm schreef op donderdag 08 november 2012 @ 22:13:
Zonder diep in de code te kijken, het lijkt er op of je een ; mist op regel 3 van je JS
Dat maakt niet uit, die zijn optioneel in JS ;)

De vraag is meer: wat is de gegenereerde code van $fields?

Verder zou ik niet de innerHTML overschrijven maar netjes DOM methods gebruiken om een extra veld toe te voegen...

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • mbarie
  • Registratie: Mei 2011
  • Laatst online: 04-08-2021
Blamm schreef op donderdag 08 november 2012 @ 22:13:
Zonder diep in de code te kijken, het lijkt er op of je een ; mist op regel 3 van je JS
Javascript werkt prima zonder de puntkomma's, tenzij er meerdere commando's op 1 regel worden samengevat. Ik zie de oplossing helaas ook niet zo snel.

Net te laat, en ik post al zo weinig. :9

Overigens is nu niet helemaal duidelijk waar $fields voor staat in de snippet met PHP code. Al vermoed ik dat daar de html voor de volgende input in staat.

Verder is een onChange event op een button niet erg logisch, zou dat niet een onClick moeten zijn?

[ Voor 30% gewijzigd door mbarie op 08-11-2012 22:31 ]

Storyteller @ soundcloud


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 06-02 08:32

OkkE

CSS influencer :+

Geeft Chrome ook helemaal geen javascript melding?

Zonder te weten wat voor waarde fields heeft, is er eigenlijk vrij weinig te zeggen, behalve de tip die crisp je al gegeven heeft: gebruik hier liever de DOM methodes voor ipv innerHTML (en addEventListener ipv inline).

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Heb je überhaupt al gedebugged? Chrome heeft default al redelijk goede debug tools aanwezig, dus begin eens met verder analyseren wat er precies mis gaat. "Er gebeurt niks" is nogal vraag.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 12:46

MueR

Admin Tweakers Discord

is niet lief

PRG >> WEB

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • noes
  • Registratie: Augustus 2006
  • Niet online

noes

gek op benzine.

Stappen:
1 - wordt je onChange event wel aangeroepen in Chrome en IE? Dit kan je testen door de onChange te vervangen voor een alert.
2 - is de HTML die je wil invoegen wel goede HTML?
3 - bestaat #commentform wel?

Goede kans dat je met bovenstaande het idee wel kan vinden.

Zo niet:
- Krijg je foutmeldingen in de Chrome Console?
- Kan je een uitgeklede testcase tonen?

en @crisp: gelijk heb je, zijn optioneel, maar ik vind het fijner en netter als het wel overal gedaan wordt. In een aantal gevallen zijn ze namelijk niet optioneel (bijvoorbeeld na var x,y,z) en zo weet je zeker dat je het altijd goed doet.

K54/R1250RS | K48/K1600GT | E61/550i


Acties:
  • 0 Henk 'm!

  • williewonka03
  • Registratie: Augustus 2010
  • Laatst online: 16-06-2024
nou ik de javascript wat aangepast zodat ik niet de hele html als argument parse, maar nu doet ie het helemaal niet meer. ik heb een alert ingevoegd maar krijg die alert niet te zien. ik heb dus nu dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
    $option = get_option('tag_use');
    if ($option == 'user')
    {
        $fields = 1;
        echo '<p><label for="naam">' . __('name image') . '</label><input id="naam" name="naam[]" type="text"/></p>';
    }else{
        $fields = 0;
    }
    echo '<p><label for="image">' . __('file image') . '</label><input id="image" name="image[]" type="file"/></p>';
    
    echo "<p><input type='button' id='extra_field' value='extra image upload field' onChange=extend('$fields')></p>";

en
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function extend(fields)
{
    alert('test');
    var formholder;
    if(fields == 1){
        formholder = '<p><label for="naam">name image</label><input id="naam" name="naam[]" type="text"/></p>';
    }else{
        formholder = '<p><label for="image">file image</label><input id="image" name="image[]" type="file"/></p>';
    }
    
    document.getElementById('commentform').innerHTML = document.getElementById('commentform').innerHTML + formholder;
}


antwoord op de reacties: ik heb dus de debug dingen geprobeerd en de onchange lijkt dus niet aangeroepen te worden, maar ik snap niet waarom. De console van chrome geeft geen enkele waarschuwing of error. en er gebeurt dus helemaal niks, ik klik maar krijg geen waarschuwingen, errors, popupmeldingen of extra velden.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:24

crisp

Devver

Pixelated

en de onchange lijkt dus niet aangeroepen
mbarie schreef op donderdag 08 november 2012 @ 22:19:
[...]
Verder is een onChange event op een button niet erg logisch, zou dat niet een onClick moeten zijn?

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • williewonka03
  • Registratie: Augustus 2010
  • Laatst online: 16-06-2024
owja helemaal vergeten. ik had op google gezocht en daar stond dat chrome soms moeilijk doet over onclick en werd er geadviseerd om onchange te gebruiken. ga het nu ff proberen met onclick

EDIT: nou ja zeg! hoe doet het nu opeens! wat vaag zeg. wrs komt dat doordat ik de html uit de functie argument heb gehaald. ik had namelijk onclick al geprobeerd met de oude code en toen deed ie het niet. probleem is nu alleen dat de field ingevoegd wordt na de commentfield ipv na de eerdere image field. ga ik nog ff naarkijken. bedankt allemaal! wel raar dat de console van chrome niks liet zien

[ Voor 38% gewijzigd door williewonka03 op 09-11-2012 21:30 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
williewonka03 schreef op vrijdag 09 november 2012 @ 21:28:
ik had op google gezocht en daar stond dat chrome soms moeilijk doet over onclick en werd er geadviseerd om onchange te gebruiken
Je moet niet alles zomaar geloven wat je leest. Je maakt mij niet wijs dat je meer dan één bron hebt gevonden die dat beweert; en lemme tell you: die bron is niet goed bij z'n hoofd ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • williewonka03
  • Registratie: Augustus 2010
  • Laatst online: 16-06-2024
RobIII schreef op vrijdag 09 november 2012 @ 21:33:
[...]

Je moet niet alles zomaar geloven wat je leest. Je maakt mij niet wijs dat je meer dan één bron hebt gevonden die dat beweert; en lemme tell you: die bron is niet goed bij z'n hoofd ;)
tja ik dacht je weet maar nooit ^^ maar ik heb het daarna vergeten terug te zetten. weet iemand hoe ik de plaatsing goed krijg btw?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
williewonka03 schreef op vrijdag 09 november 2012 @ 21:35:
weet iemand hoe ik de plaatsing goed krijg btw?
Want wij zijn helderziend ... :? Welke plaatsing en define "goed". Voor zover ik zie heeft dit niets met je huidige topic te maken en dus kun je een nieuw topic (volgens onze Quickstart!) openen en daar je vraag stellen ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.