好的,所以我有一个包含以下内容的页面,该函数会创建一个填充了q15信息的下拉列表:
当用户从下拉列表q14中选择一个选项时,会触发以下代码:
onchange="configureDropDownLists(this,'q15')"
使用onload
选项加载页面时调用相同的函数:
<body onload="configureDropDownLists('q14','q15');check();">
这是使用的两个功能:
function configureDropDownLists(q14,q15) {
if (langu.languag=='English'){
var not = new Array('');
var australia = new Array('Perth','Brisbane','Sydney (Frenchs Forrest)','Sydney (Auburn)','Melbourne','Adelaide','Auckland');
}
switch (q14.value) {
case '':
document.getElementById(q15).options.length = 0;
for (i = 0; i < not.length; i++) {
createOption(document.getElementById(q15), not[i], not[i]);
}
break;
case '1':
document.getElementById(q15).options.length = 0;
for (i = 0; i < australia.length; i++) {
createOption(document.getElementById(q15), australia[i], [i+1]);
}
break;
}
}
function createOption(ddl, text, value) {
var opt = document.createElement('option');
opt.value = value;
opt.text = text;
ddl.options.add(opt);
}
最后,这个混乱的代码位于页面的header
部分:
<script type="text/javascript">
window.results = ["<?php echo implode ('","', $results); ?>"];
</script>
<script type="text/javascript">
function selected(){
var res = 'test';
document.getElementById("test").value = res;
alert(res);
}
</script>
<script type="text/javascript">
var langu = {
languag : '<?php echo $lang; ?>'
}
</script>
<script src="main.js" type="text/javascript"></script>
<script src="javascripts/scriptaculous.shrunk.js" type="text/javascript" charset="ISO-8859-1"></script>
<script src="javascripts/page2_validation.js" type="text/javascript"> </script>
当用户选择q14时,使用onchange
调用正确触发代码。此外,在q14上有PHP代码,如果用户之前访问过该页面,则会自动选择一个选项 - 在这个实例中,我希望该函数在页面加载时运行并创建q15,因此我尝试使用{{1但是,我根本无法解雇它。
欢迎任何想法和建议! 小时。
答案 0 :(得分:1)
“this”指的是select,因此你需要传递一个选择对象
这样做而不是内联
window.onload=function() {
configureDropDownLists(document.getElementById('q14'),'q15');
check();
}
答案 1 :(得分:0)
当您打算传递元素时,您已将字符串作为q14传递。
话虽如此,如果你给我们一个jsfiddle.net工作区来修改,这将更容易调试。