我希望使用jQuery ajax获取月中的天数,但.change事件不起作用。你知道为什么吗?
我试过调用alert()函数,但没有响应。
的index.html
<script src="js/jquery.js"></script>
<script type="text/javascript">
$("#month").change(function() {
alert("Alert something!");
var year= $("#year").val();
var month= $("#month").val();
$.ajax({
type: "POST",
url: "getMonthDays.php",
dataType: "html", //expect html to be returned
data: {year: year, month: month}
}).done(function(msg){
if(parseInt(msg)!=0) //if no errors
{
$('#days').html(msg); //load the returned html into days
}
});
});
</script>
<select id="year">
<option value="2012">2012</option>
<option value="2013">2013</option>
</select>
<select id="month">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select id="day">
<div id="daysInMonth"></div>
</select>
getDaysInMonth.php
<?php
function getDaysInMonth($month, $year){
return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year %400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
}
$year = $_POST["year"];
$month = $_POST["month"];
$daysInMonth = getDaysInMonth($month, $year);
$string = "<option value=\"0\">Den:</option>";
for($i = 1; $i <= $daysInMonth; $i++){
$string .= "<option value=\"$i\">$i</option>";
}
echo $string;
?>
答案 0 :(得分:0)
你给的代码是完美的。你在哪里添加了<script>
标签来加载jquery。我认为这是在你的情况下造成问题。
以下是一个工作示例http://jsfiddle.net/dvfEX/