[Javascript] Element value vullen werkt niet

Pagina: 1
Acties:

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Hallo,

Ik probeer een checkbox een bepaalde waarde te geven zodra er op geklikt word. Dit doe ik met het volgende stukje code:

code:
1
<input type="checkbox" name="connect[]" value="" onclick="if(this.checked) this.value='{$list_id},0,c'; else this.value='tt'; alert(this.value)">


Dit werkt op bijna alle browsers behalve op de Mac met safari. Onder IE op de Mac werkt het wel. Heeft iemand een idee waar dit aan zou kunnen liggen ? of is dit een bug in safari.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Javascript hoort niet thuis in P&W, maar in W&G.

-> W&G

https://fgheysels.github.io/


Verwijderd

Probeer dit eens:
code:
1
2
<input type="checkbox" name="connect[]" value=""
 onclick="if(this.checked) {this.value='{$list_id},0,c'} else {this.value='tt'}; alert(this.value)">

[ Voor 23% gewijzigd door Verwijderd op 15-01-2004 12:09 ]


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Helaas ik krijg nu niet eens de alert te zien op Safari (wel op de andere browsers)

Dit heb ik nu als code (Literal staat erbij omdat ik smarty gebruik)
code:
1
<input type="checkbox" name="connect[]" value="" onclick="{literal}if(this.checked) {this.value='{/literal}{$list_id}{literal},0,c'} else {this.value='tt'}; alert(this.value);{/literal}">

[ Voor 13% gewijzigd door emkedouwe op 15-01-2004 12:31 ]


Verwijderd

post anders even de output van je code, i.p.v. je PHP.

Verwijderd

Misschien moet je de { en } binnenin de string escapen met \

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Dit is de output:

code:
1
2
<input type="checkbox" name="connect[]" value="" onclick="if(this.checked) 
{ this.value='50.26,0,c'} else { this.value='tt' } alert(this.value);">


Lijkt mij zoals het hoort :?

[ Voor 28% gewijzigd door emkedouwe op 15-01-2004 13:05 ]


Verwijderd

Stop het anders eens in een functie:
functie doe(obj){
if(obj.checked)
{ obj.value='50.26,0,c'} else { obj.value='tt' }; alert(obj.value);
}
<button onlclick="doe(this)"

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Heb ik ook al geprobeerd maar precies het zelfde verhaal. Werkt onder alle browsers behalve Safari.
Het lijkt er op dat je in Safari een value niet meer achteraf kan wijzigen :?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

emkedouwe schreef op 15 januari 2004 @ 13:04:
Dit is de output:

code:
1
2
<input type="checkbox" name="connect[]" value="" onclick="if(this.checked) 
{ this.value='50.26,0,c'} else { this.value='tt' } alert(this.value);">


Lijkt mij zoals het hoort :?
Je zegt zelf dat het in bijna alle browsers werkt, behalve safari. Wellicht handig om het in die specifieke browser-hoek te zoeken?

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.


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Ja dat was mijn intentie ook. Is het een bug in Safari of klopt er iets niet aan de code. Ik heb al gegoogeld maar kan niets vinden over deze specifieke fout.

Verwijderd

En als je setAttribute gebruikt?
JavaScript:
1
this.setAttribute('value','{$list_id},0,c');

  • Bluestorm
  • Registratie: Januari 2000
  • Laatst online: 20-08-2022
Het is natuurlijk ook een beetje raar... Een checkbox die in principe alleen true of false kan zijn een andere value geven.
Wat waarschijnlijk wel overal werkt is een extra hidden input maken... en de value daarvan wijzigen afhankelijk van of je checkbox wel of niet checked is. (Kun je bijna het zelfde javascript gebruiken, maar je moet even this door iets vervangen wat wijst naar dat andere hidden veld)

Tenminste... dat [ denk / zie / weet ] ik... | Javascript obfuscator | foto's en video's uploaden


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Bluestorm schreef op 15 januari 2004 @ 13:54:
Het is natuurlijk ook een beetje raar... Een checkbox die in principe alleen true of false kan zijn een andere value geven.
:?


edit:

http://www.w3.org/TR/html4/interact/forms.html#h-17.4

[ Voor 14% gewijzigd door BtM909 op 15-01-2004 14:05 ]

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.


  • Bluestorm
  • Registratie: Januari 2000
  • Laatst online: 20-08-2022
Ja... ik zat daar ook al te kijken :) Ik zeg het ook verkeerd... Maar ik bedoel dat een checkbox voor mij iets is wat afhankelijk van of ie checked is een bepaalde waarde wel... of niet heeft... en niet iets wat een waarde a of b heeft afhankelijk van of ie checked is.

edit:
Maar ik vind sowieso de werking van een checkbox in html een beetje onpraktisch... Waarom heeft dat ding niet gewoon een value van true/false en submit ie die niet altijd... Veel makkelijker in de meeste gevallen :)

Maar natuurlijk zou dat zetten van de value ook in Safari wel moeten werken... of het mooi is is wat anders... want als je het formulier submit krijg je die value die je instelt als ie niet checked is toch niet te weten.

[ Voor 46% gewijzigd door Bluestorm op 15-01-2004 14:19 ]

Tenminste... dat [ denk / zie / weet ] ik... | Javascript obfuscator | foto's en video's uploaden


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Verwijderd schreef op 15 januari 2004 @ 13:48:
En als je setAttribute gebruikt?
JavaScript:
1
this.setAttribute('value','{$list_id},0,c');
YEEEAAAH, Het werkt !!!! _/-\o_

Thanx a lot !!
Pagina: 1