Validering af form input
Hej!Jeg har lidt bøvl med noget validering af en form. Nederst mit script, der validerer formen.
Jeg har forsøgt at indsætte en ny regel øverst, der skal validere om brugeren har valgt "Session" (det skal brugeren dog kun promptes for, hvis Attending boksen ikke er checked. De nederste felter fungerer fint med validering efter samme princip med kun at checke, hvis ikke attending-boksen er checked (brugeren siger faktisk nej til deltagelse, ved at klikke i boksen - lidt forvirrende måske).
Dette er den gl. script-kode, der fungerer uden Attending:
if(form.Session.value == "") {
alert("Please select your preferred session dates");
form.Session.focus();
return false;
Men jeg kan ikke "Session" til at virke i nedenstående script.
Nogen, der gider hjælpe? Pft.
--- start kode med attending check---
// JavaScript Document
function isFilled(element)
{
if(element.value=="")
{
return false;
}
else
{
return true;
}
}
function isReady(form)
{
var isAttending = !form.Attending.checked;
if(isAttending && !document.form.Session.value == "") {
alert("Please select your preferred session dates");
form.Session.focus();
return false;
}
if(isFilled(form.Firstname)==false)
{
alert("Please fill in your First name");
form.Firstname.focus();
return false;
}
if(isFilled(form.Familyname)==false)
{
alert("Please fill in your Family Name");
form.Familyname.focus();
return false;
}
if(isFilled(form.Function)==false)
{
alert("Please fill in your Function");
form.Function.focus();
return false;
}
if(isFilled(form.Department)==false)
{
alert("Please fill in your Department");
form.Department.focus();
return false;
}
if(isFilled(form.Country)==false)
{
alert("Please fill in Nycomed country");
form.Country.focus();
return false;
}
if(isFilled(form.Mobilephone)==false)
{
alert("Please fill in your Mobile phone No. and include your country code, e.g. +45");
form.Mobilephone.focus();
return false;
}
if (!form.Email.value.match(/^.*@\w[\w\.-]*\.[a-z]{2,6}$/)) {
alert("Invalid E-mail address! Please re-enter.");
form.Email.focus();
return false;
}
if(isAttending && !document.form.RoomRequired[0].checked && !document.form.RoomRequired[1].checked)
{
alert("Please select whether you need hotel room reservation.");
return false;
}
if(isAttending && !document.form.RoomRequired[1].checked)
{
if(!isFilled(form.firstinput))
{
alert("Please fill in Check-in date - and verify date referring to your arrival.");
form.firstinput.focus();
return false;
}
if(!isFilled(form.secondinput))
{
alert("Please fill in Check-out date - and verify date referring to your departure.");
form.secondinput.focus();
return false;
}
if(isAttending && !document.form.RoomPreference[0].checked && !document.form.RoomPreference[1].checked)
{
alert("Please select whether you have any room preferences (Smoking or Non-smoking)");
return false;
}
}
if(isAttending && !document.form.DiateryRemarks[0].checked && !document.form.DiateryRemarks[1].checked)
{
alert("Please select whether you have any diatery preferences (Remarks)");
return false;
}
if(isAttending && !document.form.DiateryRemarks[1].checked)
{
if(!isFilled(form.DiateryPreferences))
{
alert("Please fill in your Diatery Preferences");
form.DiateryPreferences.focus();
return false;
}
}
return true;
}
--- kode stop ---
