document.getElementById() is leeg
Ik ben niet zo'n prof. in javascript. Ik zit nu met een probleem te kampen. Ik heb volgende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
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';
}
}
{
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
alert(inputName).. wat zie je? is het een door jouw ingevoerde waarde?
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)
Code (php)
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?
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:
Wat dus ook niets uithaalde.
Iemand die me kan helpen?
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";
}
}
en lol @ ++inputName++
wanne kwats, da heb ik nog nooit gezien zo :)
Gewijzigd op 15/09/2010 17:56:00 door niek s
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
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';
}
}
{
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.
en hoe ziet je input element er uit? En de aanroep van de functie?
inputName zal wel nog steeds de name bevatten ipv het id