如何实现根据下拉列表的选中值完成相关后续文本内容的填充?

来源:百度知道 编辑:UC知道 时间:2024/06/21 11:48:38
页面中有一下拉列表,想实现如下功能,根据选中的下拉项,用该下拉项的下标索引作为key从一个自定义容器中获取相应值并设置到后续的text文本框中?

举例:
<select id="AA" onchange="setInfo()">
<option value=‘1’>李</option>
<option value=‘2’>王</option>
</select>
<!-- 此处的option也是动态生成,事先是不知道个数的,为了方便举例我简单用两个代替了-->

<input type="text" name="age">
<input type="text" name="sex">

现在我选中李,页面就从一个自定义的类UserInfo(所有需要的用户信息已经全部从服务端返回并封装了)中以“李”作为key获取“李”的age,sex等信息,并显示在text文本框中,这个js怎么写?

我写的setInfo()是
var slt = document.getElementById("AA");
var txt = slt.text;

//userInfo为UserInfo类的实例变量
document.all.age.value = <%=userInfo.getUserInfo(txt, "age")%>;//获取age(txt实际无法调用,举例用)
document.all.sex.value = <%=userInfo.getUserInfo(txt, "sex")%>;//获取sex(txt实际无法调用,举例用)

但是因为在java代码中无法调用js变量,所以程序写不下去了,谁有解决方法吗?
<

1.在select附加onchange(this.value)事件,获取UserInfo的key
2.两种方案:
一种是一开始就利用JSON把你的UserInfo的List直接以JSONString的形式附加给一个JS变量,然后你就可以直接通过KEY来访问这个对象那到你的userInfo
另一种是,在次发送AJAX请求。。请求后台并获得数据回传到页面来显示
DWR貌似没有JSON简单哦~~嘿嘿
JSON只是。。。把JAVA对象转换成JS对象字符串的一个工具包没什么东西。。。例子:利用工具类:JSONObject.fromObject(a);//a是一个对象,有一个String属性b,和一个List属性c
产生的结果就类似是:{"b":"xxx","c":["xx","xx","yy"]}。。。然后直接传输到页面复制给JS对象,
var x = <%=你的字符串%>,不用加引号,就可以直接用JS对象的方式访问了 ,顺便说一下如果数据量大的话请不要使用get请求。因为JSON是基于文本的,所以传输上很快。。但是捏。。。字符串很长可能。。。get请求似乎有长度限制

一种方法是,你从后台查询出所有的user,然后将它整理成一段javascript代码的字符串,传递到前台页面上,比如有三个用户,那就保存成
String userInfosScriptCode = "<script>" +
"var users = [];" +
"users['1'] = {id=1,name='李',age=10,sex='男'};" +
"users['2'] = {id=2,name='钱',age=20,sex='男'};" +
... +
"</script>"