Avatar billede phrozia Juniormester
13. april 2013 - 15:00 Der er 5 kommentarer og
1 løsning

Tilføj dato når dropdown ændres

Hejsa!

Jeg sidder med en lille formular som styrer om noget er afsendt eller ej og dertil kunne det være fedt med lidt automatisk dato indsætning.

Når dropdown ændres til sendt, så skal feltet sent_dato automatisk have fyldt værdi i (efter nuværende dato) gerne med mm-dd-åå formattering. Dropdown må gerne ændres til radio hvis dette gør det lettet for JS'et.

HTML'en er som følger:

<form action="index.php?page=pages/user_edit.php" method="post" class="form">

Sendt: <select name="order_sent" class="pulldown">
<option value="Y">Ja</option>
<option value="N" selected="selected">Nej</option>
</select>

Sendt dato: <input name="order_date" size="75" value="" class="field">

<input type="submit" name="submit" value="Opdater brugerinformation!">
</form>
Avatar billede olebole Juniormester
13. april 2013 - 15:35 #1
<ole>

Det er en ret uortodoks løsning. I det felt kan der jo stå, hvad som helst, når data rammer serveren. Sæt datoen ind på serveren i stedet. Det kan du bruge til noget  =)

/mvh
</bole>
Avatar billede d4ta Nybegynder
13. april 2013 - 16:16 #2
Som jeg forstår det, er det fordi i det øjeblik at man vælger "sendt", så skal feltet udfyldes med dags dato, med mulighed for at ændre datoen, derfor vil det ikke være oplagt at sætte datoen ind efter submit.

Jeg ville nok bruge jquery, hvis jeg var dig, det vil gøre dit liv med javascript noget lettere.

Herefter lave følgende jquery/java script:

<script>

$('#deliveryMethod').change(function() {

var d = new Date();
var today = d.getFullYear() + "-" + (d.getMonth()+1) + "-" + d.getDate();

$('#datofelt').val(today);

});

</script>
Avatar billede olebole Juniormester
13. april 2013 - 16:52 #3
@d4ta: "Jeg ville nok bruge jquery, hvis jeg var dig, det vil gøre dit liv med javascript noget lettere."

At bruge jQuery på en fornuftig måde kræver, man er rigtig god til JavaScript, CSS of DOM - men det r korrekt, at jQuery ofte bruges som dårlig undskyldning for at lære de pågældende sprog  *o)

Udover dit datoformat er forkert i forhold til det ønskede, virker din kode vist slet ikke

Med det ønskede datoformat kan det gøres sådan:

<script type="text/javascript">
function setText(sel) {
    if (sel.value==="N") {
        return sel.form["order_date"].value = "";
    }
    var oD = new Date(), d = oD.getDate(),
    m = oD.getMonth(), y = oD.getFullYear();
    sel.form["order_date"].value = (m<10?"0"+m:m) + "-" + (d<10?"0"+d:d) + "-" + (y-2000);
}
</script>

- og i HTML'en retter du til:

<select onchange="setText(this)" name="order_sent" class="pulldown">
Avatar billede phrozia Juniormester
14. april 2013 - 13:34 #4
Hejsa!

Olebole's svar virker fuldstændigt som det jeg efterspørger. Smider du et svar?

Jeg har brug for lidt mere JS hjælp, så har oprettet et nye spørgsmål på http://www.eksperten.dk/spm/979796 :)
Avatar billede olebole Juniormester
14. april 2013 - 14:05 #5
Ellers tak, jeg samler ikke point. Du kan bare lægge et svar selv og acceptere det, så tråden lukkes  =)
Avatar billede phrozia Juniormester
17. april 2013 - 16:48 #6
Lukker da olebole ikke ønsker point.

Tak til alle for bidrag.
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