JS动态给select的option赋值的具体 *** 作步骤如下:
1、首先我们打开JS软件,点击界面左上角file选项目录下的new选项,再选择java project 新建web项目 *** 作。
2、 *** 作上图后进入下图界面,输入项目名点击下一步直到完成。
3、建立完成后,项目结构如下图。
4、在超链接中设置调用函数用于更新option,代码如下图红框所选。
5、在change函数中获取seclect项,获取option的数量,遍历option获取选中的option更新选中项。
6、最后看一下运行的效果,此时我们可以动态输入数值给select的option赋值。
<select id="ddlResourceType" onchange="getvalue(this)"></select>
动态删除select中的所有options:
document.getElementById("ddlResourceType").options.length=0
动态删除select中的某一项option:
document.getElementById("ddlResourceType").options.remove(indx)
动态添加select中的项option:
document.getElementById("ddlResourceType").options.add(new Option(text,value))
上面在IE和FireFox都能测试成功,希望以后你可以用上。
其实用标准的DOM *** 作也可以,就是document.createElement,appendChild,removeChild之类的。
取值方面
function getvalue(obj)
{
var m=obj.options[obj.selectedIndex].value
alert(m)//获取value
var n=obj.options[obj.selectedIndex].text
alert(n)//获取文本
}
虽然不太明白为什么refresh方法不起作用,不过还有另外一个方法:
// data 是ajax返回的json数据$.get("xxx.html?a=" + a, function (data) {
var site = new Array()
$.each(data, function(index, values) {
//循环将data数据的结构重新调整为下面这样的:[{label:xxx,value:id}]
// laebl相当于option的文字,value则是option的value,结构不能错
site.push({
label : values.site_name,
value : values.id
})
})
//重点是这里,不用refresh方法,用下面这个。
$("#site_id").multiselect('dataprovider',site)
})
如果你在查询数据库的时候直接就这样:
select id as value, city_name as label from 表名
那么返回值在js那里就不需要循环改变结构了,直接可以用:
$("#site_id").multiselect('dataprovider',data)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)