» »

[JavaScript] Array in funckije

[JavaScript] Array in funckije

Mist ::

Čao,

imam manjši problem, namreč delam neko stran kjer imam validacijo podatkov v javascriptu. Zadevo sem si zamislil nekako tako, naredim array z imeni polj, ki jih je potrebno preverjati nato pa se sprehodim skozi array ter vsakemu polju pripnem onblur validate funkcijo. Vendar pa se zadeva malo zatakne...

[input type="Text" name="post" id="post" value="" /]
[div style="display: none;" id="divOrder_post"]
Manjka poštna številka:
[/div]


Tako izgleda Html, input polje ter div z sporočilom o napaki.


var orderValid = { name : false,
email : false,
city : false,
post : false,
address : false
};


Je array z nazivi polj, ki morajo biti pregledana.

Najprej sem naredil funkcijo, ki izgleda nekako takole:
for ( var orderKey in orderValid )
{
$( orderKey ).onblur = function()
{
if ( Validator.isEmpty( $( orderKey ).value ) )
{
$( 'divOrder_' + orderKey ).style.display = 'inline';
orderValid[ orderKey ] = false;
}
else
{
$( 'divOrder_' + orderKey ).style.display = 'none';
orderValid[ orderKey ] = true;
}
}
}


Zadeva ni delovala kot mora, saj je vsem input elementom pripel isti orderKey (zadnji na seznamu).
Nato sem poskusil isto zadevo spraviti v eval():

for ( var orderKey in orderValid )
{

var strEvalString = "";

var strEvalString = "$( '" + orderKey + "' ).onblur = function(){";
strEvalString += "if ( Validator.isEmpty( $( '" + orderKey + "' ).value )";
strEvalString += ( orderKey == "email" ) ? " || !Validator.isEmail( $( '" + orderKey + "' ).value ) " : "";

strEvalString += "){ ";

strEvalString += "$( 'divOrder_" + orderKey + "' ).style.display = 'inline';";
strEvalString += "orderValid['" + orderKey + "' ] = false; }else {";
strEvalString += "$( 'divOrder_" + orderKey + "' ).style.display = 'none';";
strEvalString += "} }";

eval(strEvalString);
}


Ta koda pa deluje kot mora, vendar pa mi način ne ustreza saj je nepraktičen in nepregleden. Tako da me zanima ali se da zadevo sprogramirati bolje? Brez eval funkcije.

P.S.: Uporabljena je Prototype knjižnjica -> $() vrne objekt z podanim imenom
P.S.S.: Validate.isEmpty in Validate.isEmail, sta funkciji, ki kot ime pove preverjata če je prazno in ali je email pravi.

Road Runner ::

veliko laze bi bilo ce bi nekje objavil tole kodo da vidimo delujoco zadevo
http://dusan.fora.si/blog/ (742617000027)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Ajax readyState == 3 ne deluje?

Oddelek: Izdelava spletišč
9743 (666) Housy
»

Show/hide rows tabelah (javascript)

Oddelek: Izdelava spletišč
51024 (1024) Tody
»

[JavaScript] display=bolock/none

Oddelek: Izdelava spletišč
61042 (994) MasterBlaster
»

asp.net izdelava linka do tiskanja...

Oddelek: Izdelava spletišč
121252 (1112) jerneju
»

100 Web space baner & kako ustvariti temo za PhpBB

Oddelek: Izdelava spletišč
182721 (2550) overlord_tm

Več podobnih tem