webForumDet fria alternativet

Plussa på månader på datum i formulär

JavaScript

2 svar · 431 visningar · startad av Bjarne A

Medlem sedan feb. 2001151 inlägg
Frågan#1

Hej!

Jag har sökt här i scriptarkivet, googlat, klippt och klistrat... men nu ger jag upp

Jag skulle vilja lägga på ett antal månader till dagens datum med en dropdown ruta i ett formulär, så man får välja sluttid för det nyhetsinlägget

Kan det funka med Javascript och någon onchange funktion på dropdownen

<FORM NAME="nyheter">

<INPUT NAME="inskrivningsdatum" TYPE="hidden" value="<%=date%>"> 
Inskrivet: <%=date%> + antal månader
<select>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option selected>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
  <option>10</option>
  <option>11</option>
  <option>12</option>
</select>
Här visas slutdatum med javaskriptets hjälp<BR>

<INPUT NAME="inskrivningsdatum" TYPE="hidden" value="Här fixar javascriptet in slutdatum i formen yyyy-mm-dd" >
<BR>
Rubrik:
<BR>
<input name="rubrik" type="text">
<BR>
Meddelande: <BR>
<textarea name="meddelande" cols="40" rows="6"></textarea>
<BR>
<INPUT VALUE="Skicka in" TYPE="button">
Medlem sedan dec. 20025 483 inlägg
#2

Hej!

<script type="text/javascript">
function addMonths(sel){
  var elms = document.forms["nyheter"].elements;
  var dateSpan = document.getElementById("dateSpan");
  var beginDate = elms["inskrivningsdatum"].value;
  var monthsToAdd = sel.options[sel.selectedIndex].text;
  beginDate = new Date(/^\d+/.exec(beginDate), parseInt(/-(\d+)-/.exec(beginDate)[1], 10) - 1, /\d+$/.exec(beginDate));
  var endDate = new Date(beginDate.getFullYear(), beginDate.getMonth() + 1 * monthsToAdd, beginDate.getDate());
  elms["inskrivningsdatum2"].value = endDate.getFullYear() + "-" + pad(endDate.getMonth() + 1) + "-" + pad(endDate.getDate());
  dateSpan.innerHTML = elms["inskrivningsdatum2"].value;
}

function pad(n){
  if (n < 10) return "0" + n;
  return n;
}
</script>

<body>

<FORM NAME="nyheter">

<INPUT NAME="inskrivningsdatum" TYPE="hidden" value="2009-07-04"> 
Inskrivet: 2009-07-04 + antal månader
<select name="months" onchange="addMonths(this)">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option selected>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
  <option>10</option>
  <option>11</option>
  <option>12</option>
</select>
Här visas slutdatum med javaskriptets hjälp: <span id="dateSpan"></span><BR>

<INPUT NAME="inskrivningsdatum2" TYPE="hidden" value="Här fixar javascriptet in slutdatum i formen yyyy-mm-dd" >
<BR>
Rubrik:
<BR>
<input name="rubrik" type="text">
<BR>
Meddelande: <BR>
<textarea name="meddelande" cols="40" rows="6"></textarea>
<BR>
<INPUT VALUE="Skicka in" TYPE="button">

</form>

<script type="text/javascript">addMonths(document.forms["nyheter"].elements["months"]);</script>

</body>
Medlem sedan feb. 2001151 inlägg
#3

Strålande :birp
Funkade jättebra
Jag la in datumet i ett dolt fält
(alldeles själv ;))

<INPUT NAME="inskrivningsdatum2" TYPE="hidden" value= dateSpan >
262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)