Avatar billede kkd Nybegynder
15. august 2006 - 11:21 Der er 5 kommentarer og
1 løsning

Radiobutton skal åbne promptbox - skal indsætte i formular.

Hej.
Jeg har to radiobuttons "Ja" og "Nej". Klikker man på Ja, indsættes der en værdi fra et skjult felt i et andet hiddenfield (intet problem) - klikker man derimod på nej skal der åbnes en promtbox, hvor man indtaster en dato. Denne dato skal så indsættes i samme hiddenfield - hvordan gøres det?

<form>
<Input type="hidden" name="DagsDato" value="<%=Date%>">
<label>
    <input type="radio" name="DatoValg" value="Ja" onChange="this.form.EntryDato.value = this.form.DagsDato.value";>
  Ja</label>
       
<label>
        <input type="radio" name="DagsValg" value="Nej" onChange="og det er så her jeg står af">
  Nej</label>
<Input type="hidden" name="EntryDato">
</form>
Avatar billede roenving Novice
15. august 2006 - 11:58 #1
Den er faktisk rimeligt lige ud:

Indtastet værdi = prompt(meddelelse, startværdi);

-- så det bliver:

        <input type="radio" name="DagsValg" value="Nej" onChange="this.form.EntryDato.value = prompt('Indtast dato for begivenheden',this.form.DagsDato.value)">
Avatar billede kkd Nybegynder
15. august 2006 - 12:28 #2
Mange tak...

Er der evt. mulighed for at man kan tjekke, at brugeren indtaster i formatet mm-dd-åååå?
Avatar billede kkd Nybegynder
15. august 2006 - 12:37 #3
Og svar i øvrigt lige (!)
Avatar billede roenving Novice
15. august 2006 - 12:46 #4
Ja, men så skal du nok lave en funktion, og du kan så også validere, at datoen i virkeligheden findes:

<script type="text/javascript">
function checkDato(defValue){
  var newDate = prompt('Indtast dato for begivenheden',defValue);
  if(newDate.match(/^(\d\d\-){2}\d{4}$/)){
    newDate = newDate.split("-");
    var dato = new Date(newDate[2],newDate[1]-1,newDate[0]);
    if(newDate[2] == dato.getFullYear() && newDate[1] == dato.getMonth()+1 && newDate[0] == dato.getDate())
      return newDate;
  }
  return defValue;
}
</script>

-- og så bliver inputten sådan:

        <input type="radio" name="DagsValg" value="Nej" onChange="this.form.EntryDato.value = checkDato(this.form.DagsDato.value)">

-- på den måde sættes så en værdi under alle omstændigheder (en alert kan også sættes ind før return defValue; !-)

Velbekomme '-)
Avatar billede roenving Novice
15. august 2006 - 12:47 #5
-- og så skal det nok være onclick, så man bare kan trykke igen !o]
Avatar billede roenving Novice
21. oktober 2007 - 04:47 #6
Tak for point ;~}
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