Javascript选择下拉菜单onchange未正确触发

时间:2010-10-29 01:45:43

标签: javascript onchange

我的onchange没有正确触发javascript方法。

选择代码(在HTML文件中)

<select id="crit_1" onchange="crit1Update()">
    <option value=null>Criteria 1</option>
 <option value="major">Major</option>
 <option value="grad">Graduation Year</option>
</select>

crit1Update()代码(在与包含上述内容的HTML文件相同的文件夹中的外部filter.js文件中,以及HTML代码中的以下代码

<script type="text/javascript" src="filter.js">
</script>

function crit1Update() {
 var crit1 = document.criteria.getElementsByID("crit1");
 var criteria1 = crit1.options[crit1.selectedIndex].value;
 alert("criteria1"); // this is never firing, so this isnt getting called
 if (criteria1 == null) {
  // eventually set all other lists to null in here as well
  filter(null,null,null,null,null,null)
            // the above returns all the resumes 
            // (this is eventually going to filter resumes)
 }
 else if (criteria1 == "major") {
  alert("Major!");
 }
}

我缺少任何明显或不明显的错误吗?我不明白为什么警报(“criteria1”没有被调用。我来自java背景,这是我第一次涉足JS,所以我可能会遗漏一些简单的东西。

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

此方法调用中存在拼写错误:

document.criteria.getElementsByID(

应该是

document.criteria.getElementById(
                            ^  ^ no "s" and lower case "d"

还要确保该ID与您的HTML元素匹配,例如“crit_1”

答案 1 :(得分:3)

您的<select> ID为“crit_1”且您的功能正在寻找ID“crit1”(无下划线)。

传递<select>元素作为函数的引用可能是个更好的主意,例如

的JavaScript

function crit1Update(crit1) {
    var criteria1 = crit1.options[crit1.selectedIndex].value;

HTML

<select id="crit1" name="crit1" onchange="crit1Update(this)">