Spaties valideren in mijn javascript

Status
Niet open voor verdere reacties.

maykelvl

Gebruiker
Lid geworden
3 aug 2008
Berichten
13
Ik heb een formulier gemaakt in dreamweaver, en heb daarna dus mijn formulier gevalideerd met het volgende script:

<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' vul een geldige postcode in.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is verplicht.\n'; }
} if (errors) alert('Corrigeer uw invoer:\n'+errors);
document.MM_returnValue = (errors == '');
} }
//-->
</script>

Met dit script wordt er wel een foutmelding gegeven als er velden niet worden ingevuld,maar als men dan alleen maar spaties invullen, dan wordt dat niet gezien als een leeg veld, en wordt er ook geen foutmelding gegeven.

Wat moet ik aan dit script toevoegen, zodat de spaties wel gevalideerd worden? Hopelijk kunnen jullie mij hiermee helpen.

Gr Maykel
 
Zet het script eens tussen code tags, want op dit moment ziet het er echt een jungle uit o_O

Probeer eens om een soort tussen-vars te gebruiken. Deze vars zijn gelijk aan de waarde die in de velden staat, maar dan zonder spaties (Kan je doen met "replace()"). En dan gewoon de tussen-vars controleren.
 
Laatst bewerkt:
Zou iemand mij een voorbeeld kunnen geven hoe ik dat dan in dit script kan toevoegen, want ik heb al een aantal dingen geprobeerd, maar het wil maar niet lukken.
 
Het script dat je gebruikt is gecomprimeerd, het is daarom erg lastig om te lezen. Ik heb het even snel uit elkaar gehaald, en dan ziet het er zo uit:

Code:
<script type="text/javascript">
	function MM_validateForm()
	{
		if (document.getElementById)
		{
			var i,p,q,nm,test,num,min,max,errors = '',args = MM_validateForm.arguments;

			for (i = 0; i < (args.length-2); i += 3)
			{
				test = args[i + 2];
				val = document.getElementById(args[i]);
			
				if (val) 
				{
					nm = val.name;
					if ((val = val.value) != "")
					{
						if (test.indexOf('isEmail') != -1)
						{
							p = val.indexOf('@');
							if (p < 1 || p == (val.length-1)) errors += '- ' + nm + ' must contain an e-mail address.\n';
						}
						else if (test != 'R')
						{ 
							num = parseFloat(val);
							if (isNaN(val)) errors += '- ' + nm + ' vul een geldige postcode in.\n';
							if (test.indexOf('inRange') != -1) 
							{
								p = test.indexOf(':');
								min = test.substring(8,p);
								max = test.substring(p+1);
								
								if (num < min || max < num) errors += '- ' + nm + ' must contain a number between ' + min + ' and ' + max + '.\n';
							}
						}
					} 
					else if (test.charAt(0) == 'R') errors += '- ' + nm + ' is verplicht.\n';
				}
			}

			if (errors) alert('Corrigeer uw invoer:\n' + errors);

			document.MM_returnValue = (errors == '');
		}
	}
</script>

Vervolgens kun je doen wat NielsDesmet zei en alle spaties uit de variabelen halen door replace() te gebruiken, volgens mij gaat dat als volgt:

Code:
var test = "  dit is een test   ";

test = test.replace(/ /g,"");

alert(test);

Succes
 
onthoud wel dat Javascript goed is voor gebruikersgemak, maar niet voor beveiliging. Je server moet de waardes ook controleren voor je er iets mee doet. En alvast mijn verontschuldigingen als je dat allang wist.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan