为什么.change事件不起作用

时间:2013-01-21 12:44:41

标签: jquery

我希望使用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;

?>

1 个答案:

答案 0 :(得分:0)

你给的代码是完美的。你在哪里添加了<script>标签来加载jquery。我认为这是在你的情况下造成问题。

以下是一个工作示例http://jsfiddle.net/dvfEX/