function check(s) {
var a = s.split(',');
for(var i=0; i<a.length; i++) {
if(document.wee.kon.value=="") {
alert('Fyll i alla nödvändiga fält!');
return false;
}
}
}
Den fungerar inte, men om man ändrar == till != så visas alert-rutan.
Så om jag förstått det hela rätt vill du kolla alla fält i s om de e ifyllda eller inte?
Kanske bättre att anropa funktionen check så här
validateFields('kon', 'alder', 'bor', 'jobbar');
istället för att skicka en sträng.
Sen kan du med hjälp av arguments kolla hur många parametrar som skickades och loopa igenom dem:
<script type="text/javascript">
function validateFields()
{
var oForm = document.forms["wee"];
for(var i=0; i<arguments.length; i++)
{
if(!oForm[arguments[i]].value.length)
{
alert('Fyll i alla nödvändiga fält!');
return false;
}
}
return true;
}
</script>
<form name="wee" onsubmit="return validateFields('kon', 'alder', 'bor', 'jobbar');">
<!-- etc... -->
... och om du nu inte vill hårdkoda formulärnamnet i funktionen (för att använda samma funktion till flera forms) kan du skicka med en referens till form:en i första argumentet:
<script type="text/javascript">
function validateFields()
{
var oForm = [b]arguments[0][/b];
for(var i=[b]1[/b]; i<arguments.length; i++)
{
if(!oForm[arguments[i]].value.length)
{
alert('Fyll i alla nödvändiga fält!');
return false;
}
}
return true;
}
</script>
<form name="wee" onsubmit="return validateFields([b]this[/b], 'kon', 'alder', 'bor', 'jobbar');">