Avatar billede ravnkilde Nybegynder
18. december 2007 - 10:40 Der er 4 kommentarer og
1 løsning

Validering af form

Hej!

Jeg har en kode, der validerer form input, men mangler en alert, der er afhængig af brugerens input/valg.

Brugeren skal vælge Yes eller No til RoomRequired. Ved Yes skal brugeres promptes for input af "Check-in date" (formfeltet hedder Checkin) og for input af "Check-out date" (formfeltet hedder Checkout). Desuden skal brugeren ved Yes vælge enten smoking eller non-smoking (RoomPreference), men den er lavet.

Jeg har prøvet forskellige ting, men scriptet virker ikke. Nogen, der kan hjælpe?

--- start på kode (forkortet) ---

}
    if(isAttending && !document.form.RoomRequired[0].checked && !document.form.RoomRequired[1].checked)
    {
    alert("Please select whether you need hotel room reservation. If yes, verify check-in and check-out dates referring to your arrival and departure.");
    return false;
    }
    if(isAttending && !document.form.RoomRequired[1].checked)
    {
    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). If yes, please type in your remarks (Text).");
    return false;
    }
return true;
}

--- kode stop ---
Avatar billede di8leva Nybegynder
18. december 2007 - 10:51 #1
Det her script kan jeg genkende :) Så vi kan bruge samme funktioner som tidligere?


if(isAttending && !document.form.RoomRequired[1].checked)
{
    if(!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(!isFilled(form.Checkin))
    {
        alert("Checkin not filled");
        form.Checkin.focus();
        return false;
    }
    if(!isFilled(form.Checkout))
    {
        alert("Checkout not filled");
        form.Checkout.focus();
        return false;
    }
}
Avatar billede ravnkilde Nybegynder
18. december 2007 - 10:58 #2
Ja, det gør du vist nok, di8leva ;-)

Jeg får en return statement fejl på scriptet (Return statement outside of function) - som ses i sine fulde længde nedenfor.

// JavaScript Document
function isFilled(element)
{
    if(element.value=="")
    {
        return false;
    }
    else
    {
        return true;
    }
}
function isReady(form)
{
    var isAttending = !form.Attending.checked;
    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. If yes, verify check-in and check-out dates referring to your arrival and departure.");
    return false;
    }
  if(isAttending && !document.form.RoomRequired[1].checked)
{
    if(!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(!isFilled(form.Checkin))
    {
        alert("Checkin not filled");
        form.Checkin.focus();
        return false;
    }
    if(!isFilled(form.Checkout))
    {
        alert("Checkout not filled");
        form.Checkout.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). If yes, please type in your remarks (Text).");
    return false;
    }
return true;
}
Avatar billede di8leva Nybegynder
18. december 2007 - 11:05 #3
yes... fjern den SIDSTE:

    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;
    }
    }
Avatar billede ravnkilde Nybegynder
18. december 2007 - 11:15 #4
FANTASTISK! Læg et svar og få en julegave, di8leva.
Jeg har virkelig forsøgt denne gang, men det blev til for mange alerts med Object osv.
Glædelig jul!
Avatar billede di8leva Nybegynder
18. december 2007 - 11:19 #5
Tak i lige måde :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester