Javascript onchange事件在我的代码中不起作用

Javascript onchange事件在我的代码中不起作用,javascript,php,jquery,html,onchange,Javascript,Php,Jquery,Html,Onchange,这个代码有什么问题?为什么我的onchange事件不起作用?我已经尝试了很多,这让我发疯。请帮忙 <!DOCTYPE html> <html> <head> <script type=text/javascript> function populate(s1,s2){ var s1 = document.getElementById(s1); var s2 = document.getElementById(s2); s2.innerHTML =

这个代码有什么问题?为什么我的onchange事件不起作用?我已经尝试了很多,这让我发疯。请帮忙

<!DOCTYPE html>
<html>
<head>
<script type=text/javascript>
function populate(s1,s2){
var s1 = document.getElementById(s1);
var s2 = document.getElementById(s2);
s2.innerHTML = "";
if(s1.value == "Chevy"){
var optionArray ["|", "camaro|Camaro", "corvette|Corvette",
"impala|Impala"];
}
else if(s1.value=="Dodge"){
var optionArray=["|", "avanger|Avanger", "challenger|Challenger",
"charger|Charger"];
}
else if(s1.value=="Ford"){
var optionArray=["|", "mustang|Mustang", "shelby|Shelby"];
}
for(var option in optionArray){
var pair=optionArray[option].split("|");
var newOption=document.createElement("option");
newOption.value=pair[0]; 
newOption.innerHtml=pair[1];
s2.options.add(newOption);
}
}
</script>
</head>
<body>
<h2>Choose Your Car</h2>
<hr />
Choose Car Make:
<select id="slct1" name="slct1" onchange="populate(this.id, 'slct2')">
<option value="">Select</option>
<option value="Chevy">Chevy</option>
<option value="Dodge">Dodge</option>
<option value="Ford">Ford</option>
</select>
<hr />
Choose Car Model:
<select id="slct2" name="slct2"></select>
<hr />
</body>
</html>

函数填充(s1、s2){
var s1=document.getElementById(s1);
var s2=document.getElementById(s2);
s2.innerHTML=“”;
如果(s1.value==“雪佛兰”){
var optionArray[“|”、“camaro | camaro”、“corvette | corvette”,
“黑斑羚|黑斑羚”];
}
else if(s1.值==“道奇”){
var optionArray=[“|”、“avanger | avanger”、“challenger | challenger”,
“充电器|充电器”];
}
否则,如果(s1.值==“福特”){
var optionArray=[“|”、“野马|野马”、“谢尔比|谢尔比”];
}
for(optionArray中的var选项){
var pair=optionArray[option]。拆分(“|”);
var newOption=document.createElement(“选项”);
newOption.value=pair[0];
newOption.innerHtml=pair[1];
s2.选项。添加(新选项);
}
}
选择你的车

选择汽车品牌: 挑选 雪佛兰 闪避 河流浅水处
选择车型:

任何人,请向我指出确切的问题在哪里…让我试着相应地运行它

两个更改。将
innerHtml
更改为
innerHtml
,并指定一个
=
登录

if(s1.value == "Chevy"){
var optionArray ["|", "camaro|Camaro", "corvette|Corvette",
"impala|Impala"];
}
将上述内容更正为

if(s1.value == "Chevy"){
var optionArray = ["|", "camaro|Camaro", "corvette|Corvette",
"impala|Impala"];
}

尝试以下操作:

<select id="slct1" name="slct1" onchange="populate(this, 'slct2')">
演示:
innerHtml
innerHtml
不同,您应该设置选项的文本,而不是html。你真的不应该对数组使用for-in循环。你的代码有语法错误。浏览器会告诉您这些错误是什么。看看JavaScript控制台。听说过存在于每个broswer中的JavaScript调试器吗?
var optionArray[“|”、“camaro | camaro”、“corvette | corvette”、“impala | impala”]试过了…仍然不起作用…但是无论如何,谢谢…我将使用数据库方法…我发现我的列表将非常大谢谢…仍然有一些错误我不知道…它不起作用…无论如何,谢谢4花时间…将使用数据库和AJAX方法…我想我的选项列表将非常大
populate = function(s1,s2) {
    var s2 = document.getElementById(s2);
    s2.innerHTML = "";
    if(s1.value == "Chevy"){
        var optionArray = ["|", "camaro|Camaro", "corvette|Corvette",
"impala|Impala"];
    }
    else if(s1.value=="Dodge"){
        var optionArray=["|", "avanger|Avanger", "challenger|Challenger",
"charger|Charger"];
    }
    else if(s1.value=="Ford"){
        var optionArray=["|", "mustang|Mustang", "shelby|Shelby"];
    }
    for(var option in optionArray){
        var pair=optionArray[option].split("|");
        var newOption=document.createElement("option");
        newOption.value=pair[0]; 
        newOption.innerHTML=pair[1];
        s2.options.add(newOption);
    }
}