[js/dhtml] unselectable / onChange probleempje

Pagina: 1
Acties:

  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
Als ik deze functie in mijn <body onload="init_page();"> zet, doen de onChange-events van de <input type=text> het niet meer... Hoe kan dit?
code:
1
2
3
4
5
6
7
8
9
10
  function init_page() {
    for (i=0; i<document.all.length; i++) {
      document.all(i).unselectable = "on";
    };
    for (i=0; i<document.forms.length; i++) {
      for (j=0; j<document.forms(i).elements.length; j++) {
        document.forms(i).elements(j).unselectable = "off";
      };
    };
  };


En hoe los ik dit op? Heb al op MSDN gekeken, maar daar staat er nix over.....

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • WvdWest
  • Registratie: Augustus 2002
  • Niet online
Kan je de source online zetten. Dan kan ik beter zien hoe het wordt aangeroepen en hier even testen

I'm not a complete idiot - several parts are missing.


  • André
  • Registratie: Maart 2002
  • Nu online

André

Analytics dude

Is het trouwens niet: document.all[i] i.p.v. document.all(i). En dat geld ook voor forms[i] en elements[i].

Verwijderd

Bij mij werkt dat gewoon, al vind ik je code echt verschrikkelijk inconsistent. Is document.all bij jou nu een functie of een array? Het werkt op deze manier, okay, maar array's horen vierkante haakjes [] te hebben. Volgens mij is unselectable ook IE only.

Maar een onchange wordt getriggerd als iets anders de focus krijgt. Dat kan bij jou dus alleen een ander formelement zijn. Als je een ander element de focus geeft, werkt het onchange event dan wel?

[ Voor 0% gewijzigd door Verwijderd op 05-08-2002 15:13 . Reden: typo ]


  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<head>
<script language="Javascript">
  function init_page() {
    for (i=0; i<document.all.length; i++) {
      document.all[i].unselectable = "on";
    };
    for (i=0; i<document.forms.length; i++) {
      for (j=0; j<document.forms[i].elements.length; j++) {
        document.forms[i].elements[j].unselectable = "off";
      };
    };
  };
</script>
</head>
<body onload="init_page();">
<form name="hiddenForm">
  <input type="text" name="blaat" onchange="alert('BLAAT!');">
</form>
</body>
</html>


Ik denk dat het komt omdat een onChange er altijd van uit gaat dat je nadat je iets wijzigt op iets anders focust, dus als het ware na de onBlur...

Als die onload er niet in staat, en je hebt iets gewijzigd in de box, en klikt daarna elders, dan doet ie het...

Maar als die onload er wel staat, kun je nergens anders op klikken, en doet ie het dus niet... Maar ik wil wel alle tekst buiten de textboxen unselectable hebben...

EDIT: Over die () ipv []: Het stond dus echt met () op de MSDN-site, ik vond het ook al zo vreemd... Rare mensen die MS-ers.... En dat het IE-only is maakt niet uit, onze applicatie draait alleen onder IE :) :)

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • WvdWest
  • Registratie: Augustus 2002
  • Niet online
Ik denk dat het komt omdat een onChange er altijd van uit gaat dat je nadat je iets wijzigt op iets anders focust, dus als het ware na de onBlur...

Als die onload er niet in staat, en je hebt iets gewijzigd in de box, en klikt daarna elders, dan doet ie het...

Maar als die onload er wel staat, kun je nergens anders op klikken, en doet ie het dus niet... Maar ik wil wel alle tekst buiten de textboxen unselectable hebben...
Volgens w3.org heb je gelijk.
The onchange event occurs when a control loses the input focus and its value has been modified since gaining focus.
Dit betekend dus IMHO dat hetgeen jij wilt niet gaat werken. Wellicht kan je het oplossen door een button in je form te zetten die het script uitvoert wat je nu in het onchange event hebt gehangen.

I'm not a complete idiot - several parts are missing.


  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
Het script wat ik hier heb geeft een beetje weer wat ik "in het groot" heb...

Ik heb een toolbar met meerdere <button>'s. Op het moment dat ik een <input type=text> wijzig, moeten er een aantal javascript variabelen op TRUE gezet worden. Dit doe ik met een functie, waarin de variabelen onder elkaar op TRUE gezet worden.

Als ik op de button klik, voert hij een bepaalde functie uit aan de hand van de status van de eerder gezette variabelen (welke dus kijken of er iets gewijzigd is).

En dat doet het dus niet... Snik snik...

De button heb ik dus, maar dat doet het ook gewoon niet... Vaag of niet?

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • WvdWest
  • Registratie: Augustus 2002
  • Niet online
Staat de hele code ergens online zodat ik het kan zien? Kan me niet helemaal inbeelden wat je precies bedoeld. Staat de button wel in hetzelfde form?

I'm not a complete idiot - several parts are missing.


  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
De hele code staat niet openbaar online. De button staat in dezelfde form, en is als volgt opgebouwd:
code:
1
<button onclick="functie();">[img]"save.gif"[/img]</button>


Ik heb ff een source-save gemaakt, die staat hier: http://members.home.nl/skef/got/test.phps

Het gaat om de diverse buttons, en de functie change_checker().

Wie denkt er mee?

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
^^^ Subtiel he, zo op de vroege ochtend.... --> Kom je op werk, zijn er helemaal geen replies meer na gistermiddag...

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • André
  • Registratie: Maart 2002
  • Nu online

André

Analytics dude

code:
1
<button onclick="functie();">[img]"save.gif"[/img]</button>

Maak daar eens het volgende van:

code:
1
<input type="button" onclick="functie()" style="background-image:url('save.gif')">


Volgens mij moet het zo werken... :)

  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
Ik heb het ff geprobeerd, maar dat vernaggelt het nogal...

Ik heb nl. ook een value aan de knoppies hangen, en die zet ie nu door het plaatje heen...

Ik kijk ff wat ie doet als de value er nie meer in staat...

En wat ook vreemd is: Bij de eerste keer dat je met je muis over zo'n knoppie gaat, verdwijnt en verschijnt het plaatje heel kort... Vreemd...

EDIT: De value kan ik echt niet weghalen, want dan weet mijn muteer.php niet meer wat ie er mee aan moet... Vaag...

Iemand een idee om bij een <input type=button> de value niet zichtbaar te hebben? :)

[ Voor 0% gewijzigd door Skef op 06-08-2002 09:56 . Reden: Uitgetest... ]

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • André
  • Registratie: Maart 2002
  • Nu online

André

Analytics dude

code:
1
<input type="button" value="Test" onclick="functie()" style="background-image:url('save.gif');color:rgb(plaatshierdekleurvandeachtergrondvandeknop);">

[ Voor 0% gewijzigd door André op 06-08-2002 10:21 . Reden: typo ]


  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
Doet ie nie hoor...

Ik heb dit:
code:
1
color:rgb(C0C0C0);
toegevoegd, of moeten er single quotes om die C0C0C0 heen?

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

color:rgb(r, g, b); met r g en b als ints van 0 tot 255 net als in ps.
c0c0c0 = hex. dat zou color:#c0c0c0; moeten zijn.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
Ok, dat heb ik nu gedaan, maar dan wordt mijn tekst in de knop (=de value) dus C0C0C0... Maar dan ligt het nog steeds over mijn plaatje heen...

Kan ik nie op de een of andere manier het plaatje wat meer naar de voorgrond brengen?

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

Topicstarter
Ik heb nu de name en de value weggehaald binnen de <input type=button>, en nu doet ie het nog niet...

Ik heb een <input type=hidden> gemaakt welke nu gezet wordt op het moment dat ik op een button druk, maar dat werkt dus nog niet...

Ik heb hier weer een nieuwe source-save gezet:
http://members.home.nl/skef/got/test2.html

Wie o wie helpt mij verder?

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."

Pagina: 1