Forum » Izdelava spletišč » [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...
Tako izgleda Html, input polje ter div z sporočilom o napaki.
Je array z nazivi polj, ki morajo biti pregledana.
Najprej sem naredil funkcijo, ki izgleda nekako takole:
Zadeva ni delovala kot mora, saj je vsem input elementom pripel isti orderKey (zadnji na seznamu).
Nato sem poskusil isto zadevo spraviti v eval():
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.
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Ajax readyState == 3 ne deluje?Oddelek: Izdelava spletišč | 743 (666) | Housy |
» | Show/hide rows tabelah (javascript)Oddelek: Izdelava spletišč | 1024 (1024) | Tody |
» | [JavaScript] display=bolock/noneOddelek: Izdelava spletišč | 1042 (994) | MasterBlaster |
» | asp.net izdelava linka do tiskanja...Oddelek: Izdelava spletišč | 1252 (1112) | jerneju |
» | 100 Web space baner & kako ustvariti temo za PhpBBOddelek: Izdelava spletišč | 2721 (2550) | overlord_tm |