So im trying to create a form that will send the date of the next friday as the value. The value should be in the form "YYYY-MM-DD"
Here is what i have so far:
<input type="hidden" name="next_charge_scheduled_at" id="s1" value="" />
<script type="text/javascript">
var elem = document.getElementById("s1");
elem.value = function()
{
var d = new Date();
switch (d.getDay())
{
case 0: d.setDate(d.getDate() + 5);
break;
case 1: d.setDate(d.getDate() + 4);
break;
case 2: d.setDate(d.getDate() + 3);
break;
case 3: d.setDate(d.getDate() + 2);
break;
case 4: d.setDate(d.getDate() + 1);
break;
case 6: d.setDate(d.getDate() + 6);
break;
}
return d;
};
</script>
However, this returns the whole function, and not the result, as far as i can see.
What am I doing wrong?
You have binded a function to elem.value.If you want to put the result of function to elem.value,do it in this way:
<input type="hidden" name="next_charge_scheduled_at" id="s1" value="" />
<script type="text/javascript">
var elem = document.getElementById("s1");
elem.value=getDate();
function getDate()
{
var d = new Date();
switch (d.getDay())
{
case 0: d.setDate(d.getDate() + 5);
break;
case 1: d.setDate(d.getDate() + 4);
break;
case 2: d.setDate(d.getDate() + 3);
break;
case 3: d.setDate(d.getDate() + 2);
break;
case 4: d.setDate(d.getDate() + 1);
break;
case 5: d.setDate(d.getDate() + 7);
break;
case 6: d.setDate(d.getDate() + 6);
break;
}
return `${d.getFullYear()}-${(d.getMonth() + 1) }-${d.getDate()}`;
};
You need to create a function, only if we excute the function like so calculateFriday()
we will get the value which we will set to the input field!
var elem = document.getElementById("s1"); elem.value = calculateFriday(); function calculateFriday() { var d = new Date(); switch (d.getDay()) { case 0: d.setDate(d.getDate() + 5); break; case 1: d.setDate(d.getDate() + 4); break; case 2: d.setDate(d.getDate() + 3); break; case 3: d.setDate(d.getDate() + 2); break; case 4: d.setDate(d.getDate() + 1); break; case 5: d.setDate(d.getDate() + 7); break; case 6: d.setDate(d.getDate() + 6); break; } return moment(d).format('YYYY-MM-DD');; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script> <input type="text" tname="next_charge_scheduled_at" id="s1" value="" />
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.