HTML JQuery的.change不工作(HTML <select> JQuer

2019-06-25 19:49发布

好吧,我不明白为什么这个心不是工作。 这似乎很简单。

这里是我的下拉菜单:

<div>
    <form>
        <select id='yearDropdown'>
            <c:forEach var="years" items="${parkYears}">
                <option value=/events.html?display_year=${years}<c:if test="${currentYear == years}">selected="selected"</c:if>>${years}</option>
            </c:forEach>
        </select>
    </form>
</div>

这里是JavaScript

$("#yearDropdown").change(function () {
    alert('The option with value ' + $(this).val());
});

现在我只是想获得它的工作,所以我可以添加功能。 谢谢!

Answer 1:

该代码语法正确。 最有可能在错误的时间运行它。

你要绑定事件时,DOM已准备就绪

$(function(){ /* DOM ready */
    $("#yearDropdown").change(function() {
        alert('The option with value ' + $(this).val());
    });
});

或者,使用live

$("#yearDropdown").live('change', function() {
    alert('The option with value ' + $(this).val());
});

或者,使用delegate

$(document.body).delegate('#yearDropdown', 'change', function() {
    alert('The option with value ' + $(this).val());
});

或者,如果你正在使用jQuery 1.7+

$("#yearDropdown").on('change', function() {
    alert('The option with value ' + $(this).val());
});

尽管如此,它通常是最好的,一旦浏览器呈现完毕标记来执行脚本。



Answer 2:

我曾尝试你的代码中jsFiffle 。 我手动添加了一些年的选项。 它的工作原理正确的。

只要绑定的$(document)在.change事件。就绪:

$(document).ready(function(){
  $("#yearDropdown").change(function () {
      alert('The option with value ' + $(this).val());
  });​
});


Answer 3:

您的代码是正确的,是为我工作,在这里看到: http://jsfiddle.net/mobweb/2Skp9/

你确定的jQuery已正确安装?



Answer 4:

不知道这是否会帮助,但你可以试试这个:

    $("#yearDropdown").live("change", function () {
    alert('The option with value ' + $(this).val());
});


文章来源: HTML 举报