當我製作一個使用日期來確定它的字段值的表單時,我遇到了以下問題。在我的表單中,我使用了一個「選擇」輸入和一些可以輸入日期的字段。 「選擇」輸入中某個選項的值取決於輸入的日期(該值表示週末價格較高的價格)。Javascript getDay()返回錯誤的日子
起初我對日期字段使用了一個輸入類型=「日期」,並寫了一個javascript函數來獲取星期幾以確定週末,這工作得很好。但是當我實現了jQuery datepicker小部件時,輸入類型似乎只在將其更改爲type =「text」時才起作用。從這裏getDay()方法開始返回錯誤的一天。這導致每當我選擇一個日期時,它就會返回錯誤的價格,因爲它不會選擇一週中的正確日期。
我認爲問題是日期不能正確讀取,因爲它作爲字符串返回而不是日期,因此返回無效日期。我花了好幾個小時尋找解決方案並嘗試了幾種可能的解決方案,但到目前爲止它仍然無法工作。
下面是用於檢查的日期代碼的一部分:
HTML:
<input type="text" id="tukdatum" class="reservinput" value="" name="voorkeursdatum" maxlength="10" onchange="calculateTotal()" />
<select id="activiteit" name="activiteit" onchange="calculateTotal()">
<option value="bowling" id="bowling">Bowling bij Pins&Pints € 17.50 p.p. (€ 25,- in de weekenden)</option>
</select>
的Javascript:
var tuk_activiteiten = new Array();
tuk_activiteiten["bowling"]=17.50;
tuk_activiteiten["bowlingWE"]=25;
function checkDate()
{
var inputdate = document.getElementById("tukdatum").value;
var tukdate = new Date(inputdate);
if (tukdate.getDay() == 6 || tukdate.getDay() == 0)
{
document.getElementById("bowling").value = "bowlingWE";
}
else {
document.getElementById("bowling").value = "bowling";
}
}
的jQuery的日期選擇器:
$(function(){
$.datepicker.setDefaults(
$.extend($.datepicker.regional[ 'nl' ])
);
$('#tukdatum').datepicker({
dateFormat: 'dd-mm-yy',
minDate: '+1',
showOtherMonths: true,
selectOtherMonths: true
});
});
所以basicall我希望它做的是檢查日期選擇器輸入的日期是否在週末(如果爲真,則選項值= 25,否則選項值= 17.50)。請注意,該表格是用荷蘭語(即ID /班級名稱等)編寫的。
*不*返回哪些?包含一些實際發生的事情和期望的事例很好。 – 2015-02-23 21:22:06
把整個事情細化到相關部分也是一件好事。最好用一個片段或小提琴。唯一感興趣的部分是'checkDate'部分和'tukdatum'的html,對吧? – 2015-02-23 21:31:01
@DaveNewton在我使用日期選擇器的那一刻,它返回一個無效的日期,這意味着它將值25綁定到一週的錯誤日期。它應該將值25綁定到星期六和星期日,以及一週中所有其他日期的值爲17.50。現在它將價值17.50綁定到我選擇的幾乎所有日期,除了某些日期(例如2015年3月1日星期日,2015年3月5日星期四)。 – MozillaFox 2015-02-23 21:50:07