Avatar billede webhelpers Praktikant
28. november 2006 - 14:56 Der er 10 kommentarer og
1 løsning

Simpel validering

Hej guys

Jeg sidder fast i dette total simple script og er ved at blive sindssyg. Håber en kan jeg hjælpe. Den giver en alert, uanset om man har checket en radiobutton eller ej... :o)

<SCRIPT  language="JavaScript">
<!-- Hide from older browsers...
var submitcount=0;

function CheckFormSurvey () {
    var errorMsg = "";
    var errorMsgLong = "";


    if(!document.surveyform.q<%=RS("ID")%>.checked){
      errorMsgLong += "\n\- <%=RS("Question")%>";
    }

    if (errorMsgLong != ""){
      errorMsg = "Du skal svare på følgende spørgsmål:";
        errorMsg += alert(errorMsg + errorMsgLong);
        return false;
    }
   
    return submitOnce();
}


function submitOnce() {

  if (submitcount == 0)
      {
      submitcount++;
      return true;
      }

  if (submitcount > 0)
      {
      alert("Dit valg behandles\n\nVent venligst");
      return false;
      }

}
// -->
</script>
Avatar billede sw_red_6 Nybegynder
28. november 2006 - 14:59 #1
har du prøvet at lave en alert med <%=RS("ID")%> for at tjekke hvad der står?
Avatar billede mcardle Nybegynder
28. november 2006 - 15:04 #2
Jeg har siddet hele natten og haft noget á la det samme problem. Det var godt nok PHP, men det er jo ligemeget. Jeg fandt aldrig ud af det, så jeg lavede det hele i javascript.

Prøv at afslutte din <%=RS("ID")%>, så det bliver: <%=RS("ID");%>

Ved ikke om det har noget at sige...
Avatar billede mcardle Nybegynder
28. november 2006 - 15:07 #3
Og selvfølgelig alle de andre også... 8o)
Avatar billede webhelpers Praktikant
28. november 2006 - 15:13 #4
Når jeg kigger i kildekoden, så har den korrekt skrevet:

if(!document.surveyform.q21.checked)

Og den kan godt finde ud af tjekke status på radioknappen, men den giver en alert uanset om den er checked eller ej :o)
Avatar billede olebole Juniormester
28. november 2006 - 15:13 #5
<ole>

Prøv med et link til dokumentet

/mvh
</bole>
Avatar billede olebole Juniormester
28. november 2006 - 15:20 #6
Det må være et andet sted, du laver fejl ... dette fungerer da fint:

<script type="text/JavaScript">
var submitcount = 0;
function CheckFormSurvey () {
    var errorMsg = "";
    var errorMsgLong = "";


    if(!document.surveyform.q21.checked){
      errorMsgLong += "blabla";
    }

    if (errorMsgLong != ""){
      errorMsg = "Du skal svare på følgende spørgsmål:";
        errorMsg += alert(errorMsg + errorMsgLong);
        return false;
    }
   
    return submitOnce();
}


function submitOnce() {

  if (submitcount == 0)
      {
      submitcount++;
      return true;
      }

  if (submitcount > 0)
      {
      alert("Dit valg behandles\n\nVent venligst");
      return false;
      }

}
</script>

<form name="surveyform">
    <input type="checkbox" name="q21">
</form>

<button onclick="CheckFormSurvey()">TEST</button>
Avatar billede webhelpers Praktikant
28. november 2006 - 15:46 #7
<SCRIPT  language="JavaScript">
<!-- Hide from older browsers...
var submitcount=0;

function CheckFormSurvey () {
    var errorMsg = "";
    var errorMsgLong = "";


   
    if(!document.surveyform.q21.checked){
      errorMsgLong += "\n\- Hvor tilfreds har du været med dit VIP-Bruger medlemskab?";
    }
    else if(document.surveyform.q21.checked){
    }


    if (errorMsgLong != ""){
        errorMsg = "Du skal svare på følgende spørgsmål:";
        errorMsg += alert(errorMsg + errorMsgLong);
        return false;
    }
   
    return submitOnce();
}


function submitOnce() {

  if (submitcount == 0)
      {
      submitcount++;
      return true;
      }

  if (submitcount > 0)
      {
      alert("Dit valg behandles\n\nVent venligst");
      return false;
      }

}
// -->
</script>


Og sådan ser FORM ud:

<FORM action="main.asp?site=surveyts&status=p0M7Q7868klmAmXlJJJ7868Q75&test=1" method=post id=surveyform name=surveyform onSubmit="return CheckFormSurvey();">
<tr>
  <td class=td_bold>Hvor tilfreds har du været med dit VIP-Bruger medlemskab?</td>
</tr>
<tr>
  <td>
  <input type=radio name=q21 value=5>&nbsp;Meget tilfreds<br />
  <input type=radio name=q21 value=4>&nbsp;Tilfreds<br />
  <input type=radio name=q21 value=3>&nbsp;Hverken eller<br />
  <input type=radio name=q21 value=2>&nbsp;Utilfreds<br />
  <input type=radio name=q21 value=1>&nbsp;Meget utilfreds<br />
  </td>
</tr>
</form>
Avatar billede thesurfer Nybegynder
28. november 2006 - 17:08 #8
numsi> Hvis man submitter, uden at sætte hak i radiobutton, sættes "submitcount" til 1 i funktionen submitOnce().

Hvis man igen submitter, uden at sætte hak i radiobutton, vil submitcount jo være 1, og den vil den sige "Dit valg behandles..", selvom valget ikke behandles..

Eller er jeg way off..?
Avatar billede thesurfer Nybegynder
28. november 2006 - 17:09 #9
Hehe.. det er mig der er way off..
Jeg er træt og overvejer at hoppe i seng.. :-)
Avatar billede webhelpers Praktikant
29. november 2006 - 09:12 #10
Fandt selv problemet - eller en løsning her på Eksperten:

function CheckFormSurvey () {
    var errorMsg = "";
    var errorMsgLong = "";


    returVal = true;
    tempTjek = false;
    for(temp1=0;temp1<document.surveyform.q21.length;temp1++){
      if(document.surveyform.q21[temp1].checked)
        tempTjek = true;
    }
    if(!tempTjek){
        returVal = false;
    }
    if(!returVal){
      errorMsgLong += "\n\- Hvor tilfreds har du været med dit VIP-Bruger medlemskab?";
    }
   
    if (errorMsgLong != ""){
        errorMsg = "Du skal svare på følgende spørgsmål:";
        errorMsg += alert(errorMsg + errorMsgLong);
        return false;
    }
   
    return submitOnce();

   
}


function submitOnce() {

  if (submitcount == 0)
      {
      submitcount++;
      return true;
      }

  if (submitcount > 0)
      {
      alert("Dit valg behandles\n\nVent venligst");
      return false;
      }

}
// -->
</script>
Avatar billede webhelpers Praktikant
29. november 2006 - 09:13 #11
Jeg takker for hjælpen
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

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