[JS] select() & focus()

Pagina: 1
Acties:

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ik ben nu bezig met bepaalde checks onSubmit en er zijn chedks bij het invoeren van de velden (onchange)
bij de submit worden de checks uitgevoerd en deze werken perfect
het is de bedoeling dat als er een fout zit dat er dan de inhoud van het veld wordt geselecteerd
en dat de gebruiker nadat hij op OK drukt van het error scherm meteen een andere invoer kan geven

maar dit werkt niet voor andere functies die worden aageroepen emt onchange..dus vind het maar vreemd.., misschien dat er een andere mogelijkheid is

dit heb ik:
deze script werkt: (is functie die wordt aangeroepen na onsubmit)
JavaScript:
1
2
3
4
5
6
7
//gedeelte van de check functie
else if (form.elements['gsm'].value == '' || form.elements['gsm'].charAt(4) !== '-') {
        alert('Voer a.u.b. een goed Mobielnummer in')
        document.getElementById('gsm').select()
        document.getElementById('gsm').focus()
        return false
    }

deze werkt weer niet...(wordt aangeroepen na onchange van veld)
JavaScript:
1
2
3
4
5
6
7
8
function nummerConvertGsm(nummer){
    var veld = document.getElementById('gsm')
    if(nummer.charAt(9) == '' || checkNumeric(veld,0600000000, 0700000000,'','','-') == false){
    alert('Nummer is niet goed ingevoerd.')
        document.getElementById('gsm').select()
        document.getElementById('gsm').focus()
    }
}

ziet iemand een verschil?? ik namelijk niet :X

[ Voor 11% gewijzigd door Tijgertje84 op 25-10-2005 11:16 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • André
  • Registratie: Maart 2002
  • Laatst online: 23-04 12:47

André

Analytics dude

code:
1
if( (nummer.charAt(9) == '') || (checkNumeric(veld,0600000000, 0700000000,'','','-') == false) ) {

:?

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
André schreef op dinsdag 25 oktober 2005 @ 11:30:
code:
1
if( (nummer.charAt(9) == '') || (checkNumeric(veld,0600000000, 0700000000,'','','-') == false) ) {

:?
hahah had al zon vermoeden dat iemadn daar over zou beginnen :)
maar dat is een script om te checken of iets numeriek is + de mogelijk heid om een nummer met een ',' of '.' of een '-' niet fout te rekenen ;)
zie ook hier http://www.shiningstar.ne...pt/checkNumeric.asp?ID=AW
het werkt perfect alleen zit nu ook met het probleem dat ik een telefoonnummer wil checken maar dat begint altijd met een '0' ofwel hij rekend dit verkeerd uit....
maar daar ben ik nog ff mee bezig
maar het 1ste probleem is dat die focus niet werkt...

[ Voor 26% gewijzigd door Tijgertje84 op 25-10-2005 11:40 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • watzie
  • Registratie: Juni 2001
  • Laatst online: 21-04 07:06
Ik denk dat je nummer.chatAt(9) crasht, wie garandeert namelijk dat nummer met zekerheid uit minstens 10 karakters bestaat? Dan wordt de rest daarna ook niet meer uitgevoerd...

Btw: waar zijn de ';' achter elke regel???

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
watzie schreef op dinsdag 25 oktober 2005 @ 11:46:
Ik denk dat je nummer.chatAt(9) crasht, wie garandeert namelijk dat nummer met zekerheid uit minstens 10 karakters bestaat? Dan wordt de rest daarna ook niet meer uitgevoerd...

Btw: waar zijn de ';' achter elke regel???
';'??? deze hoeven niet perse gebruikt te worden....
ben daar al even achter namelijk, het maakt niet uit of je ze wel of niet gebruikt
ik ahd het een keer achter een functieaanroep gebruikt en toen werkte het niet..
nadat ik het weghaalde werkte het wel..

nummer.chatAt(9) is omdat hij dan een fout melding als er te weinig cijfers staan
telefoonnummer is namelijk altijd 10 cijferig.. (NL dan)

en het gaat ook mis met het telefoon nummer
want aagezien ik op heb gegeven 0600000000 en 0700000000 ziet hij dit NIET meer als getallen maar alsvolgt:
100663296 = 0x06000000
117440512 = 0x07000000

ik moet dus een manier zien te vinden dat hij het telefoon nummer de '0' weghaald voordat hij de check uitvoert..

edit:
ok het is gelukt om het probleem op te lossen met het telefoonnummer
misschien volgesn sommigen omslachtig maar het werkt :)
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function nummerConvertGsm(nummer){
    if(nummer.charAt(0) == '0'){
        var nummer1 = document.getElementById('gsm').value.substring(1,10)
        document.getElementById('gsm').value = nummer1
        var veld = document.getElementById('gsm')
        if(nummer1.charAt(8) == '' || checkNumeric(veld,600000000, 699999999,'','','-') == false){
            alert('Nummer is niet goed ingevoerd.')
            document.getElementById('gsm').select()
            document.getElementById('gsm').focus()
            document.getElementById('gsm').value = '0'+ nummer1
        }
        else{
            var nummer2 = (nummer1.charAt(0) + nummer1.charAt(1) + nummer1.charAt(2) + '-' + 
            nummer1.charAt(3) + nummer1.charAt(4) + nummer1.charAt(5) + nummer1.charAt(6) +
            nummer1.charAt(7) + nummer1.charAt(8))
            document.getElementById('gsm').value = '0' + nummer2
        }
    }
    else{
        alert('Nummer is niet goed ingevoerd.')
        document.getElementById('gsm').select()
        document.getElementById('gsm').focus()
    }
}

maar het probleem blijft hetzelfde....
de focus en select werken niet!!!! 8)7 |:( :? :X

?? anyone?? :?

[ Voor 75% gewijzigd door Tijgertje84 op 25-10-2005 16:36 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wat werkt er nu wel en niet en zou je dat iets duidelijker uit kunnen leggen?

Ik begrijp dat je een check wilt doen op een correct Nederlands telefoonnummer? Wellicht wordt het tijd om de wondere wereld van RexExp-en eens in te duiken?

Daarnaast hoor je, in principe elke JS statement met een ; af te sluiten. Je hebt het voordeel dat je scripts hierboven werken, omdat je regels waar het fout zou kunnen gaan, eindigen met een method aanroep ;)


JavaScript:
1
2
3
4
function doIT(){
  document.getElementById('gsm').value = '0' + nummer2
  document.getElementById('gsm').value = '0' + nummer3
}

Dit gaat dus niet werken ;)

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.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ok probleem ff opnieuw uitleggen. (ook al staat het er duidelijk lijkt me)
Het gaat dus niet over die telefoonnummer, want dat heb ik zelf al opgelost.

bij een check is het de bedoeling dat als er een fout is dat hij dan een melding geeft en vervolgens een select en fucus doet zodat de gebruiker meteen kan aanpassen.
Deze checks worden uitgevoerd als ik op opslaan druk (onsubmit)
En dit werkt ook goed!
MAAR er zitten ook checks op de velden met onChange en bij deze scripts werken de select() en focus() niet helemaal....
Bij een paar andere velden werkt dit wel zoals hier:
Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/b1.jpg
bij een foute invoer en je drukt op TAB dan komt er een text te staan dat het fout is en de invoer is geselecteerd. Dit werkt zoals het hoort.

MAAR bij hetvolgende voorbeeld werkt het niet:
Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/b2.jpg

als ik 'test' invoer dan komt er een melding en staat er meteen Fout nummer in het veld

Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/b3.jpg
maar als ik op ok klik dan gaat de cursor naar het volgende veld... terwijl er toch egt dit in de code staat:
JavaScript:
1
2
3
4
5
6
if(nummer1.charAt(8) == '' || checkNumeric()==false){
            document.getElementById(id).value = 'Fout nummer.'
            alert('Nummer is niet goed ingevoerd.')
            document.getElementById(id).select()
            document.getElementById(id).focus()
        }

maar dat doet hij dus niet... |:(

en je kan wel zeggen je moet dan een ';' gebruiken maar het werkt echt ook zonder...
ik bedoel in de screen zie je de Foute nummer staan
dit is de script:

document.getElementById(id).value = 'Fout nummer.'
zonder ;!!

oftewel het werkt dus gewoon
het klopt dat het in JAVA problemen geeft maar NIET in javascript.. als ik ook maar ergens op een site kijke voor een voorbeeld javascript dan zie je vaak dan weer wel een ; en dan weer niet...

dan ben ik misschien wel een JS noob maar ik heb ook een tijdje een ; gebruikt en toen kreeg ik alleen maar foutmeldingen toen ik ze niet meer gebruikte was het probleem over dus.... zal wel aan mij liggen maar wanneer moet je ze dan wel of niet gebruiken?
of kijk hier eens: http://www.w3schools.com/js/js_operators.asp
zie iemadn hier een ';' :)???
dus mij lijkt dat een duidelijk verschil tussen JAVA en JS is dat de ; niet gebruikt hoeft te worden met JS (verplicht met J)....
ik heb zelfs bij veel van mijn gemaakte scripts alle ';' weggehaald en ze werken nog steeds prima ;)
nu wil niet hierover een discussie starten want daar gaat dit topic niet over :P

[ Voor 9% gewijzigd door Tijgertje84 op 26-10-2005 11:05 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:26

crisp

Devver

Pixelated

javascript gaat er van uit dat eol einde statement is, het is echter good practice om toch zelf statement seperators in te voegen...

Intentionally left blank


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
crisp schreef op woensdag 26 oktober 2005 @ 11:15:
javascript gaat er van uit dat eol einde statement is, het is echter good practice om toch zelf statement seperators in te voegen...
je bedoelt dat het verstandiger om het wel te doen?
maar dan niet bij het aanroepen van functies en methodes...

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:26

crisp

Devver

Pixelated

bij functies en andere constructs met een 'body' is de } end-of-statement, echter wordt na een } meestal geen accolade geplaatst:
JavaScript:
1
2
3
4
function foo()
{
    blaat();
}

Intentionally left blank


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
crisp schreef op woensdag 26 oktober 2005 @ 11:24:
bij functies en andere constructs met een 'body' is de } end-of-statement, echter wordt na een } meestal geen accolade geplaatst:
JavaScript:
1
2
3
4
function foo()
{
    blaat();
}
maar
JavaScript:
1
2
3
4
function foo()
{
    blaat()
}

werkt ook
maar dat is het punt niet het gaan om mijn probleem en niet die ; O-) }:O

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
anyone?? omtrend de select en focus probleem??? :O ;( :Z

[ Voor 12% gewijzigd door Tijgertje84 op 27-10-2005 17:00 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ok probleem ff opnieuw uitleggen. dit was vorige week ook al maar nog steeds niet opgelost..

bij een check is het de bedoeling dat als er een fout is dat hij dan een melding geeft en vervolgens een select en fucus doet zodat de gebruiker meteen kan aanpassen.
Deze checks worden uitgevoerd als ik op opslaan druk (onsubmit)
En dit werkt ook goed!
MAAR er zitten ook checks op de velden met onChange en bij deze scripts werken de select() en focus() niet helemaal....
Bij een paar andere velden werkt dit wel zoals hier:
Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/b1.jpg
bij een foute invoer en je drukt op TAB dan komt er een text te staan dat het fout is en de invoer is geselecteerd. Dit werkt zoals het hoort.

MAAR bij hetvolgende voorbeeld werkt het niet:
Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/b2.jpg

als ik 'test' invoer dan komt er een melding en staat er meteen Fout nummer in het veld

Afbeeldingslocatie: http://home.aim.hsbrabant.nl/s136588/b3.jpg
maar als ik op ok klik dan gaat de cursor naar het volgende veld... terwijl er toch egt dit in de code staat:
JavaScript:
1
2
3
4
5
6
if(nummer1.charAt(8) == '' || checkNumeric()==false){
            document.getElementById(id).value = 'Fout nummer.';
            alert('Nummer is niet goed ingevoerd.');
            document.getElementById(id).select()
            document.getElementById(id).focus()
        }

maar dat doet hij dus niet... |:(

[ Voor 7% gewijzigd door Tijgertje84 op 31-10-2005 14:39 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H

Pagina: 1