document.getElementById() is leeg

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruben Portier

Ruben Portier

14/09/2010 19:10:32
Quote Anchor link
Beste

Ik ben niet zo'n prof. in javascript. Ik zit nu met een probleem te kampen. Ik heb volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
function validateInput(inputName)
{    
    if(inputName.value.length == 0 || inputName.value == "")
    {
        document.getElementById(inputName).className = 'invalidInput';
    }
    else
    {
        document.getElementById(inputName).className = 'validInput';
    }
}


Maar ik krijg telkens de melding dat document.getElementById(...) leeg is?
Hoe kan ik nu de naam verkrijgen die naar inputName werd verstuurd?

Alvast bedankt

Ruben Portier
 
PHP hulp

PHP hulp

22/12/2024 08:31:18
 
Erik Rijk

Erik Rijk

14/09/2010 19:19:59
Quote Anchor link
alert(inputName).. wat zie je? is het een door jouw ingevoerde waarde?
 
Ruben Portier

Ruben Portier

14/09/2010 19:22:33
Quote Anchor link
Ja. En als ik zelf de waarde invul tussen 2 "'s dan werkt het wel. Maar omdat ik de functie gebruik voor meerdere inputs wil ik hem dus dynamisch maken. Dus dat ik met 1 functie al de inputs zo kan controleren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
return validateInput(vraag_nl);
Gewijzigd op 14/09/2010 19:23:00 door Ruben Portier
 
Niek s

niek s

15/09/2010 12:21:57
Quote Anchor link
Wat zit er in die vraag_nl?

Remember:

validateInput("mijnInput"); // goed
validateInput("#mijnInput"); // fout

Waarschijnlijk is dus je input parameter niet goed, en vaak is het dan zoiets lulligs als dat je nog in "CSS mode" zit. CSS selectors werken niet in JavaScript (tenzij je een lib zoals jQuery gebruikt die wel weer CSS selectors ondersteund)
 
Ruben Portier

Ruben Portier

15/09/2010 16:51:19
Quote Anchor link
nee hoor. Ik heb de syntax juist.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="vraag_nl" id="validator" class="validInput" style="height: 15px; width: 250px;" value="" onblur="return validateInput('vraag_nl');" />


Dus die vraag_nl is eigenlijk de id naam van de input. Dus dan moet de javascript functie die vraag_nl gebruiken als id. Hoe kan ik dat doen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
document.getElementById(inputName).className = 'invalidInput';


Hier zit hem namelijk de fout. getElementById(inputName) wil niet werken. inputName is niet leeg, maar je kan het niet zo gebruiken rechtstreeks in elementbyid. Hoe kan ik dat dan doen?

Iemand vertelde me zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
document.getElementById(++inputName++).className = 'invalidInput';


Wat dus ook niets uithaalde.

Iemand die me kan helpen?
 
Pieter Jansen

Pieter Jansen

15/09/2010 17:41:24
Quote Anchor link
Lees je code eens goed door ;)

getElementById(); En met name het laatste woordje van deze functie. Je refereert je code verkeerd. Je kunt niet even aannemen dat js je name value als referentie punt kan gebruiken.

getELementById("ID"); returns ( obj elem );

Je functie zal er dus anders uit gaan zien. Wat je kunt doen is zoiets als:

function val(id)
{
var e = getElementById(id);

if(e.value == "" || e.length = 0)
{
e.className = "invalidInputClass";
}
}
 
Niek s

niek s

15/09/2010 17:55:40
Quote Anchor link
Inderdaad. je input heeft geen id, maar een name. Dat is een verschil.

en lol @ ++inputName++
wanne kwats, da heb ik nog nooit gezien zo :)
Gewijzigd op 15/09/2010 17:56:00 door niek s
 
Ruben Portier

Ruben Portier

15/09/2010 20:47:03
Quote Anchor link
Dit is nu mijn code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
function validateInput(inputName)
{
    var e = getElementById(inputName);
    
    if(e.length == 0 || e.value == "")
    {
        e.className = 'invalidInput';
    }
    else
    {
        e.className = 'validInput';
    }
}


Maar het werkt niet. krijg ook geen fouten.
 
Niek s

niek s

15/09/2010 21:18:42
Quote Anchor link
en hoe ziet je input element er uit? En de aanroep van de functie?
 
Johan Dam

Johan Dam

16/09/2010 09:35:38
Quote Anchor link
inputName zal wel nog steeds de name bevatten ipv het id
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.