在页面加载时使用javascript函数填充HTML列表框

时间:2014-03-17 08:12:31

标签: javascript html listbox

我有一个HTML列表框,我需要在页面加载时为其添加值。我试图在<body>标记和<select>标记上的页面加载事件上调用JS函数,但它不执行该函数。

<body onload='popListbox(<%=session.getAttribute("objNames")%>)'>

<select id="lstObjects" onload='popListbox(<%=session.getAttribute("objNames")%>)'>

如果我尝试onclick它会执行正常但不会在onload事件中执行。有人可以帮我这个。?

更新:我的JS功能

function popListbox(objList){

var select = document.getElementById("lstObjects");
var objects = objList;
var objects_array = [];
for(var i in objects) {
    if(objects.hasOwnProperty(i) && !isNaN(+i)) {
        objects_array[+i] = objects[i];
    }
}
for(var i = 0; i < objects_array.length; i++) {
    var opt = objects_array[i];
    var el = document.createElement("option");
    el.textContent = opt;
    el.value = opt;
    select.appendChild(el);
}

}

2 个答案:

答案 0 :(得分:0)

尝试document.ready

$(document).ready(function(){

//你的代码在这里

});

答案 1 :(得分:-1)

什么是JS功能? 我怀疑,因为只有body标签有一个onload处理程序,也许你的js函数在从文档根目录触发时不知道元素上下文。

function popListbox(objList){
var select = document.getElementById('lstObjects');
for(i=0,ic=objList.length;i<ic;++i) {
    var el=document.createElement('option');
    el.textContent=objList[i];
    el.value=objList[i];
    select.appendChild(el);
}
}

我不知道为什么它不起作用,但我重写了它,因为它是相同的结果