我在尝试访问JavaScript脚本中的函数时遇到问题,因此我可以根据选择的月份创建一组动态可能的日期。它甚至似乎根本不访问JavaScript函数'populate()'。警报没有响应。我应该提一下整个代码是从'include_once();'调用的。在另一个文件中。我尝试按照以下示例进行操作:http://www.youtube.com/watch?feature=player_embedded&v=UliJeDbc4cw
<script type="text/javascript">
function populate(month,day){
alert('Javascript Reached');
var month = document.getElementById('month');
var day = document.getElementById('day');
day.innerHTML="";
if (month.value == "Apr" ||
month.value == "Sep" ||
month.value == "Jun" ||
month.value == "Nov" ||
){
var limit = 30;
}
else if(month.value =="feb"){
var limit = 28;
}
else{
var limit = 31;
}
while(var temp < limit){
var newOption = document.createElement("option");
newOption.value = temp;
newOption.innerHTML = temp;
day.options.add(newOption);
temp++;
}
return true;
}
</script>
<?php
adminYearOption();
adminMonthOption();
adminDayOption();
function adminYearOption(){
echo "<select name='year'><option value=''></option>";
while($datecount < 50){
$currValue = (1980+$datecount);
echo "<option value='".$currValue."'>".$currValue."</option>";
$datecount++;
}
echo "</select>";
}
function adminMonthOption(){
?> <select id='month' name='month' onchange="return populate(this.id,'day')"><option value=''></option><?php
$time = strtotime("2013-01-01");
while($datecount < 12){
$currValue = date('M',$time);
echo "<option value='".$currValue."'>".$currValue."</option>";
$time = strtotime("+1 month", $time);
$datecount++;
}
echo "</select>";
}
function adminDayOption(){
echo "<select id='day' name='day'></select>";
}
?>
对于任何其他想要创建动态日期的读者,这里有一个替代方案: http://blog.elanman.com/2009/09/create-dynamic-date-selects/但每个月都有静态的天数。
我只是好奇为什么我的工作不起作用,我无法弄明白。
感谢。
答案 0 :(得分:2)
您可能还想考虑闰年,这会改变2月份的天数。
首先创建列表:
<select name="month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="day"></select>
<select name="year"></select>
然后使用以下命令创建javascript:
var ysel = document.getElementsByName("year")[0],
msel = document.getElementsByName("month")[0],
dsel = document.getElementsByName("day")[0]; for (var i = 2014; i>=1950; i--){
var opt = new Option();
opt.value = opt.text = i;
ysel.add(opt); } ysel.addEventListener("change",validate_date); msel.addEventListener("change",validate_date);
function validate_date(){
var y = +ysel.value, m = msel.value, d = dsel.value;
if (m === "2") var mlength = 28 + (!(y & 3) && ((y % 100)!==0 || !(y & 15)));
else var mlength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][m - 1];
dsel.length = 0;
for(var i=1;i<=mlength;i++){ var opt=new Option(); opt.value = opt.text = i; if(i==d) opt.selected=true; dsel.add(opt);
} } validate_date();
它已经完成了。您现在有一个动态日期列表,也可以考虑闰年
提示:我将javascript放在</html>
之后,因为当我尝试将其放在<head></head>
中时,它无效。