Toon posts:

[JS] get element

Pagina: 1
Acties:
  • 559 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste Tweakers,

Nadat ik meerder dingen fout had gedaan bij me vroige eerste topic probeer ik het nu goed te doen.

Hier mijn uitleg :

Wat wil ik
ik heb dus 2 pagina´s :

test_opstelling en spelers

op de pagina test_opstelling staan bijvoorbeeld 3 textboxen.
en er staat naast elke textbox een link.

als je op die link klikt word in ene popup de pagina spelers geopend.
dan kan je op een link klikken in die pagina en die naam waar je op geklikt heb komt dan in een tekstbox op test_opstelling.

maar ik wil dat als je op een link klikt in de popup hij eerst kijkt of die naam al in een andere textbox staat

zoja :

Moet hij de andere textbox legen en de naam toevoegen in de tekstbox waarnaast de link stond waar je op hebt geklikt.

zonee

Moet hij de naam toevoegen in de tekstbox waarnaast de link stond waar je op hebt geklikt.

wat heb ik

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 <script language="javascript"> 
            function check(ingevoegd, eerste, tweede) { 
              
                 
                if(opener.document.getElementById(eerste).ingevoegd == opener.document.getElementById(tweede).ingevoegd) { 
                    opener.document.getElementById(eerste).ingevoegd = ""; 
                }      
                else 
                { 
                opener.document.getElementById(eerste).value; 
                }                  
            } 
        </script> 
         
<a onClick='check(pos1, eerste, tweede);'>tekst</a>


wat is er fout
Als ik op de link klikt gebeurd er niks. Hij geeft geen specifieke fout aan hij doet gewoon niks.

Uiteindelijke vraag
wat is er fout aan het script.


Groeten,

Jasper Keijzer
Cristal Distance

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

JavaScript:
5
6
7
if(opener.document.getElementById(eerste).ingevoegd.value == opener.document.getElementById(tweede).ingevoegd.value) { 
opener.document.getElementById(eerste).ingevoegd.value = ""; 
}


probeer dit eens?

Going for adventure, lots of sun and a convertible! | GMT-8


  • cyberstalker
  • Registratie: September 2005
  • Niet online

cyberstalker

Eersteklas beunhaas

Hmm, geef je wel echte waardes op als je de functies aanroept? Ik zie nu dat je de functie een variabele probeert toe te spelen, maar is deze variabele wel gedefiniëerd in de global scope?

Ik ontken het bestaan van IE.


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

crisp

Devver

Pixelated

Wat zijn 'pos1', 'eerste' en 'tweede' en waarom geef je die als objecten door en niet als string?
Waarom vraag je een 'ingevoegd'-property op (die waarschijnlijk niet bestaat)?
Wat wil je in die else-tak precies doen?

Intentionally left blank


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

het is redelijk logisch dat je scriptje niets lijkt te doen, dat getElementById(eerste).ingevoegd bestaat niet (kans van 0.95 dat je die niet hebt aangemaakt) en dat andere (dus in je else) doet helemaal niets. Dus...

[ Voor 10% gewijzigd door wizzkizz op 04-02-2006 10:32 ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


Verwijderd

Topicstarter
ik heb :

test_opstelling.html

code:
1
2
3
4
5
       <form name="formulier"> 
            <input type="text" name='pos1' id="eerste" />
            <input type="text" name='pos2' id="tweede" />
            <a href="javascript:NewWindow('spelers.html','popup','300','600','custom','front');"> Spelers</a> <br />
        </form>


spelers.html

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 <script language="javascript"> 
            function check(ingevoegd, eerste, tweede) { 
              
                 
                if(opener.document.getElementById(eerste).ingevoegd == opener.document.getElementById(tweede).ingevoegd) { 
                    opener.document.getElementById(eerste).ingevoegd = ""; 
                }      
                else 
                { 
                opener.document.getElementById(eerste).value; 
                }                  
            } 
        </script> 
         
<a onClick='check(pos1, eerste, tweede);'>tekst</a>



ik wil dat als ik op de link klikt hij eerst kijkt of hij al in een andere tekxtbox staat als dat zo is meot hij de andere textbox eerst legen en dan de naam waar je op klikte in de textbox doen.
Zoniet Moet hij gewoon de naam waar je op klikte invoeren in de tekxtbox

[ Voor 43% gewijzigd door Verwijderd op 04-02-2006 15:57 . Reden: Was wat vergeten ]


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

oke, eerst even een vraagje voordat ik ga proberen een oplossing te vinden: is het niet veel eenvoudiger om in plaats van tekstvelden waarbij je de naam van de speler in een apart venster moet kiezen een dropdown menu te gebruiken?

dan nu proberen een oplossing te gaan vinden:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
<form name="formname" id="formid" action="uri-hier.cgi" method="get">
    <input type="text" name="speler1" id="speler1" value="" readonly="readonly" />
    <a href="#" target="_blank" onclick="openSpelerLijst( 1 );return false;">Selecteer speler</a>

    <input type="text" name="speler2" id="speler2" value="" readonly="readonly" />
    <a href="#" target="_blank" onclick="openSpelerLijst( 2 );return false;">Selecteer speler</a>

    <input type="text" name="speler3" id="speler3" value="" readonly="readonly" />
    <a href="#" target="_blank" onclick="openSpelerLijst( 3 );return false;">Selecteer speler</a>

    <input type="text" name="speler4" id="speler4" value="" readonly="readonly" />
    <a href="#" target="_blank" onclick="openSpelerLijst( 4 );return false;">Selecteer speler</a>
</form>

Hier maak je je formulier waar uiteindelijk je spelers in komen te staan. De javascript-functie openSpelerLijst( spelernr ) zorgt voor het openen van de popup en het doorgeven van het nummer van de speler (= nummer van het tekstvak)

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function voegIn( naam, speler ){
    var inputs = opener.document.getElementById( "formid" ).getElementsByTagName( "input" );

    // ga door alle inputs in je formulier
    for( var x = 0; x < inputs.length; x++ ){
        //controleer of het een tekstvak is én de naam begin met speler, anders laat je het vak ongemoeid.
        if( inputs[x].type != "text" || inputs[x].name.indexOf( "speler" ) != 0 ) continue;

        // gooi het tekstvak leeg als de naam erin voorkomt
        if( inputs[x].value == naam ) inputs[x].value = ""; 
    }

    //vul de naam in in het gewenste tekstvak
    opener.document.getElementById( "speler"+ speler ).value = naam;
}

Je moet er voor zorgen dat het nummer van het tekstvak doorgegeven wordt aan je popup, maar dat is niet zo moeilijk en kun je gewoon als argument meegeven in de querystring en in je popup uitlezen.

disclaimer:
snel uit blote hoofd gedaan en niet getest, het gaat maar om het idee.

[ Voor 31% gewijzigd door wizzkizz op 04-02-2006 21:39 . Reden: disclaimer toegevoegd; readonly toegevoegd want je wilt toch niet dat mensen de namen van de spelers wijzigen :p ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.

Pagina: 1