为什么脚本没有运行?

时间:2015-11-26 17:05:32

标签: php jquery html

<?php
    $dates = "";
    foreach ($check_ins as $check_in):
        $dates .= '<option value= "' . $check_in['check_in'] . '">' . $check_in['check_in'] . '</option>';
    endforeach;
?>

<html>
    <head>
        <title>Bookings stats</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <script>
            function dynamicDates() {
                var d = $("#dates").val();
                $.post("stats.php", { newDate: d });
            }
            $("#dates").change( dynamicDates );
        </script>
    </head>
    <body>
        <select id="dates" name="check_in"><?php echo $dates; ?></select>
        <?php if (!empty($_POST["newDate"])){ echo $_POST["newDate"]; }?>
    </body>
</html>

我希望每当我在下拉列表中选择日期时,都会显示一条带有该日期的消息,但是会发生任何事情。首先我认为这是关于帖子的事情,但现在我在Firebug的第一行放置了一个断点,它永远不会到达那里,所以脚本根本没有运行。

为什么?

2 个答案:

答案 0 :(得分:2)

这样做

<select id="dates" name="check_in" onchange="dynamicDates()">
                                   ^                       ^

$("#dates").change(dynamicDates());
                               ^// parenthesis missing

答案 1 :(得分:0)

事件更改的javascript在其dom元素之前初始化。

在它引用的dom元素之后移动JS或者用你的js包装类似下面的内容。

$(document).on('ready', function() {

    // MY FANCY JS CODE

});

[编辑]您可以查看此网站how jquery works