Jump to content
php.lv forumi

Formas valideeshana.


nauriz

Recommended Posts

Principaa ideja ir taada, man ir forma, ar n-tajiem ievades laukiem - type="text". Ja kaadaa no ievades laukiem ievada nepareizu veertiibu vinjsh iekraasojaas sarkans.

Ko es gribu dabuut gatavu - kad spiezhot pogu Submit, es ar funkciju apskatu visus ievades laukus un tiem kuriem backgrounds ir sarkans uz tiem kaut kaadaa noteiktaa kaartiibaa ielieku fokusu, kameer visiem backgroundi ir balti un tad tikai submitoju formu.

Ko es nevaru atrast vai izdomaat ir kaa man dabuut tai funkcijaa, lai es varu apskatiities tos ievades laukus - if (ievades_lauks.style.background='red') ievades_lauks.focus(); Nu kaut kaa taa. Bet man vaig, lai taa funkcija ir daudzmaz universaala un der visaam 20 formaam, kas buus. Nu es ceru, ka domu saprataat.

Buutu labi kaadi konkreeti ieteikumi vai noraades uz tutoriaaljiem, manuaaljiem, u.c.

Link to comment
Share on other sites

universālu f-ju būs grūti uzrakstīt, bet var šitā...

 

Strādājošs kods...

<html>
<head>
<script>

function testEmptyString(form,fieldName)
{
return (form[fieldName].value != "");
}

function validate_form_1(form)
{
  var fieldArr = new Array('f1','f2');
  var funcArr = new Array('testEmptyString','testEmptyString');
  var errorsCnt = 0;
  var lastErrorFieldIdx;
  for (i in fieldArr)
  {
	var field = form[fieldArr[i]];
	var funcCall = funcArr[i]+"(form,'"+fieldArr[i]+"')";
	if (eval(funcCall))
	{
		   field.hasErrors = false;
		   field.style.background = '';
	} else {
		   field.hasErrors = true;
		   field.style.background = 'red';
		   errorsCnt++;
		   lastErrorFieldIdx = i;
	}
}

 if (errorsCnt)
	form[fieldArr[errorsCnt]].focus(lastErrorFieldIdx);

return !errorsCnt;
}
</script>
</head>
<body>
<form name="form_1" method="post" onsubmit="return validate_form_1(this);">
<input type="text" name="f1" value="aaa" />
<input type="text" name="f2" value="" />
<input type="submit">
</form>
</body>
</html>

Edited by Delfins
Link to comment
Share on other sites

kur probleema?

numuree to lauku id

<input type="text" id="a_0">
<input type="text" id="a_1">

un f-ja

function bla()
{
for(var i=0; i<cik_lauku; i++)
{
	if (document.getElementById('a_'+i).style.background=='red')
	{

	daram kas jadara ja lauks nav valiids

	}

}

}

Edited by Grey_Wolf
Link to comment
Share on other sites

Delfina variants bik pa sarezhgjiitu, sorry, pat iisti iedziljinaaties negribaas.

Grey_Wolf ir labs, bet nav universaals.

Man ir vismaz 20 formas ar kaadiem 30 ievades laukiem, formas neesu taisiijis pats, taapeec id ievades laukiem nav salikti, iipashi likt arii negribaas. Veel viena lieta shajaa padariishanaa ar id ir tas, ka katrai formai vaig savu funkciju, vai arii viena funkcija, kurai kaa parametrs tiek padots ievades lauku skaits, patiesiibaa, nav jau sarezhgjiiti vai kaut kaa tamliidziigi. Es tik gribeeju zinaat, mosh kaads ir izdomaajis kaadu universaalaaku variantu.

 

P.S. Paarbaudes funkcijas jau ir sataisiitas, kas iekraaso sarkanu, ja kljuudains vai arii neiekraaso, ja pareizs.

Link to comment
Share on other sites

Esmu darījis tā - katram formas elementam definēju klasi - talruna_numurs, personas_kods utml. Tad pie submit() ar DOM metodēm skrienu formai cauri un pārbaudu elementu, atbilstoši tā klasei.

Link to comment
Share on other sites

Es atvainojos, bet konkreetaa gadiijumaa ir nepiecieshama validaacija tieshi ar JS, taapeec diemzheel ieteikumi kur pareizaak buutu valideet nederees.

Ok, es valideeshu arii servera pusee, bet shajaa gadiijumaa interesee tieshi ar JS.

 

Ok, precizeeshu siikaak jautaajumu - vai ir kaada JavaScript funkcija ar kuru buutu iespeejams dabuut visus formas ievades laukus masiivaa, vai arii ar ciklu apstraadaat, bet nezinot cik to lauku ir vai buus.

Ir vai Nav?

Ja Nav, tad jaaizmanto buus Grey_Wolf variants.

Link to comment
Share on other sites

Es atvainojos, bet konkreetaa gadiijumaa ir nepiecieshama validaacija tieshi ar JS, taapeec diemzheel ieteikumi kur pareizaak buutu valideet nederees.

Ok, es valideeshu arii servera pusee, bet shajaa gadiijumaa interesee tieshi ar JS.

 

vecīt, tu esi baigi slinkais... jo jau pat manu kodu negribi apskatīties... es jau tev uzrakstīju gatavu nelielu engini, kur tev tikai jāpamaina masīva elementi + jāpieraksta pārs funkcijas...

 

Saki paldies, ka par to vēl naudu neņemu...

Link to comment
Share on other sites

Lielais paldies KAC. Un paareejiem arii.

Galu galaa taa funkcija izskataas shaadi un man liekaas, ka ir diezgan universaala un derees visaam 20 formaam, bez jebkaadas redigjeeshanas:

 

function ValidateForm()
{
var obj=document.forms[0].elements;
for (i=1; i<obj.length; i++)
{
	 if (obj[i].style.backgroundColor=='red')
	 {
	obj[i].focus();
	return false;
	break;
	 }
}
	return true;
}

Link to comment
Share on other sites

×
×
  • Create New...