作者qazsd (nice play!)
看板Ajax
标题Re: [问题] 选择了选单的某一选项後,要能出现文字栏位
时间Tue Nov 13 15:41:47 2007
我将
if(this.selectedIndex == 0) {
oPlaceList.options.length = 0;
oPlaceList.options[0] = new Option("----请选择----",0);
oPlaceList.disabled = true;
底下加了这行就OK了
document.getElementById('place_other').innerHTML=' ';
不过现在还有一个小问题就是...
当第一个选单是选第二个选项时,紧接着再选第一个选项
那麽第二个选单就会有两个"其他" (这不是绕口令)
处理选单的网页原始码如下:
<?php
$i = 0;
$j = $_GET['id'];
$county=array("---请选择---","基隆市","台北市","台北县","桃园县",
"新竹市","新竹县","苗栗县","台中市","台中县","彰化县","南投县","云林县",
"嘉义市","嘉义县","台南市","台南县","高雄市","高雄县","屏东县","宜兰县",
"花莲县","台东县","澎湖县","金门县","连江县");
$nation=array("---请选择---","日本","韩国","大陆","香港","新加坡",
"马来西亚","泰国","越南","缅甸","柬埔寨","纽西兰","澳大利亚","美国",
"加拿大","英国","法国","德国","西班牙","葡萄牙","义大利","瑞士","希腊",
"罗马","比利时","奥地利","荷兰");
?>
[
<?php if($j=="国内"){
for($i=0;$i<count($county);$i++) {?>
{
text:"<?php echo $county[ $i]; ?>",
value:"<?php echo $county[ $i]; ?>"
},
<?php } ?>
<?php }elseif($j=="国外"){
for($i=0;$i<count($nation);$i++) {?>
{
text:"<?php echo $nation[ $i]; ?>",
value:"<?php echo $nation[ $i]; ?>"
},
<?php } ?>
<?php }else ?>
{
text:"其他",
value:"其他"
}
]
然後选单的原始码如下:
<select name="region" id="region" >
<option value="0">---请选择地点---</option>
<option value="国内">台湾本岛</option>
<option value="国外">国外</option>
</select>
<select name="place" id="place">
<option value="0">----请选择----</option>
</select>
<span id="place_other"></span></div>
※ 引述《TonyQ (骨头)》之铭言: <select name="region" id="region" >
: 标题: Re: [问题] 选择了选单的某一选项後,要能出现文字栏位
: 时间: Tue Nov 13 08:52:32 2007
:
:
: ※ 引述《qazsd (nice play!)》之铭言:
: : 我弄出来了:D
: : 原本是参考 http://tw.myblog.yahoo.com/class2u-com/article?mid=2
: : 范例档:http://www.class2u.idv.tw/example/ajax_menu.zip
: : 後来我追加了下面这段
: : oPlaceList.onchange = function() {
: : if(this.options[this.selectedIndex].value == "其他") {
: : document.getElementById('other').innerHTML=' <input
: : name="address" type="text" id="address" size="40" />';
: : }else
: : document.getElementById('other').innerHTML=' ';
: : }
: : 让选"其他"的时候,在旁边会多出一个文字栏位让使用者可以输入。
: : 不过现在有个问题就是..
: : 当选了第二层的"其他" 而出现该文字栏位时
: : 再回头去将第一层改成"---请选择---",如此一来第二层也会变成"---请选择---"
:
: 这时候就要去看第一层的onchange
:
: 在它把第二层改成"请选择"的时候 一率把那个other address给拿掉
: (document.getElementById('other').innerHTML=' ';)
:
: 反正前面有更动後面就归0变成原本的 , 这很正常。
:
: : 但是已经出现的该文字栏位,却不会消失
: : 除非是先将第二层选成非"其他"的项目 ~"~
:
:
:
: --
: ▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
: ◥███████████◣ ╰┼╯=│=│
: ◥██████───────◣ *. ╯ ╯ ╯ の 物 语 .*
: ◥███████──────◣ ~ ◢◣ ◢◣
: ◥██████───────◤ ◥◤* 空白的世界.翼 *◥◤
: ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂~telnet://tony1223.no-ip.info
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 220.132.59.247
: 推 qazsd:Yes!!成功了!! 11/13 15:31
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.127.20.190