作者TonyQ (骨头)
看板Ajax
标题Re: [问题] 选择了选单的某一选项後,要能出现文字栏位
时间Tue Nov 13 16:22:47 2007
※ 引述《qazsd (nice play!)》之铭言:
: //
: //分别取得两个选单 的reference
: var oRegionList = document.getElementById('region');
: var oPlaceList = document.getElementById('place');
: //後端传回 JSON 资料的路径
: var sURLInit = "place.php";
: //用来储存 JSON 的全域变数
: var json;
: //一开始时先将第二个选单停用
: oPlaceList.disabled = true;
: //第一个选单的 onchange 事件,用来产生第二个选单的内容
: oRegionList.onchange = function() {
: //如果选择的是第一个选项,第二个选单只显示"请选择",并且无法使用。
: if(this.selectedIndex == 0) {
: oPlaceList.options.length = 0;
: oPlaceList.options[0] = new Option("----请选择----",0);
: oPlaceList.disabled = true;
: document.getElementById('place_other').innerHTML=' ';
: } else {
: //如果有选择其他选项,送出 Ajax 跟後端要求第二个选单的资料。
/*try this , 猜的, 不过我想应该有帮助. */
oPlaceList.options.length = 1; /*只留下"请选择"的选项*/
: //产生要求资料的 url,加入第一个选单所选择的选项值作为参数
: sURL = addURLParam(sURLInit,"id",this.options[this.selectedIndex].value);
: //建立 XMLHttpRequest 物件,并且送要求
: var oRequest = new XMLHttpRequest();
: oRequest.open("get", sURL, true);
: //接收资料的 callback 函数
中略
: 如果有些看不到
: 请参考前几篇里提供的网址,从中可以下载原本的原始档
--
另外如果你是回在版上 , 不用顺便回到我信箱 , 我都会看 . XD
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 语 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼
*◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂
~telnet://tony1223.no-ip.info
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.59.247
1F:推 qazsd:YES!!成功了!! 感谢^^ 11/13 16:40
2F:推 qazsd:其实不一定要设为1,只要不超过两阵列的值就好 11/13 16:46
3F:→ TonyQ:其实简单来说 只要有把"其他"这选项删掉就可以避免了 11/13 17:18
4F:→ TonyQ:不过斟酌前後题意我是觉得设成1比较OK XD 11/13 17:19
5F:推 qazsd:删掉"其他" 可能会跑不动喔 如果设成""还是会有该空白选项 11/13 17:19
6F:→ qazsd:真要简单的话..两个阵列的个数弄成一样就不用多加你那行了:) 11/13 17:20
7F:推 qazsd:不过还是让选项出现在选单里较好,不常见的再让使用者输入 11/13 18:03
8F:→ qazsd:因此第二个选单就不会屈就於跟第一个选单选项的数量一样。 11/13 18:04
9F:→ qazsd:更正~是国外国家的数量就不会屈就於跟台湾县市的数量一样:P 11/13 18:05
10F:→ TonyQ:呵 我没有仔细看懂你程式的逻辑,只用一些基础准则判断。:P 11/13 18:23