webForumDet fria alternativet

Dynamisk validering av formulär

3 svar · 307 visningar · startad av vidstige

vidstigeMedlem sedan nov. 200315 inlägg
#1

Har ett problem vid valideringen. Vill att formuläret ska kollas oberoende hur många fält som finns i formulret. De fält som inte fyllts i ska få en röd border. Men det vill inte funka för det blir ingen röd border kring fältet. Men den känner av att det finns fält som inte fyllts i för alerten 'Du har inte fyllt i de rödmarkerade fälten!' kommer upp.

function Check() 
{
  var theForm = document.forms[0];
  var all = theForm.elements;
	var flag = 0;
	var y = 0;
	while(all[y])
	{
		y++;
	}
	
  for(i=0; i<y; i++)
  { 
      if(all[i].value=='')
      {
         flag = 1;
         document.all[i].style.borderColor='#FF0000'; 
		 
      }
  }
  if(flag)
  {
	  alert('Du har inte fyllt i de rödmarkerade fälten!');
	  return false;
  }
  return true;
}
vidstigeMedlem sedan nov. 200315 inlägg
#2

Om jag skriver:

document.all.NAMNET_PÅ_FÄLTET.style.borderColor='#FF0000';

Då får fältet en röd ram men jag vill att det automatiskt ska bli en röd ram utan att behöva veta namnet på fältet. Om ni förstår vad jag menar. :)

PepeJeriaMedlem sedan feb. 2003774 inlägg
#3

Ändrat lite i din kod så att det fungerar.

<form>
<input type="text"> <input type="text"> <input type="button" value="Submit" onclick="Check(this.form);">
</form>

<script type="text/javascript">
function Check(form)
{
	var theForm = form;
	var flag = 0;
	
	for(i=0; i<form.elements.length; i++)
	{ 
		if(!form.elements[i].value)
		{
			flag = 1;
			form.elements[i].style.borderColor = "#FF0000"; 
		}
	}

	if(flag)
	{
		alert('Du har inte fyllt i de rödmarkerade fälten!');
		return false;
	}

	return true;
}
</script>
vidstigeMedlem sedan nov. 200315 inlägg
#4

Får tacka så mycket. Nu funkar det fint.

136 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)