请问在多选的时候,怎么样判断菜单列表中某个值已经选定,并根据选定的值做出js响应

redcn2004 2007-12-21 05:35:18
我有一个菜单列表,假设如下:
<select name="FeeModeID" size="28" multiple style="width:200px; height:200px;" onblur="showFeePerYear();">
<option value="1">一次收费,全年免费</option>
<option value="2">先缴费后面试</option>
<option value="3">先面试后缴费</option>
</select>
<label id="FeePerYear" style="display:none;">请输入收费金额:<input name="FeePerYear" type="text" size="10" maxlength="10" /></label>

我想实现的是任何时候,只要列表值选择了值为1的这项 ,下面的label标签就会显示出来,我的代码如下:
<script type="text/javascript">
function showFeePerYear(){
var a = document.all.FeeModeID.options;
for(var i=0;i<a.length;i++)
{
if (a[i].selected)
{
if(a[i].value=='1')
{
document.getElementById('FeePerYear').style.display='';
}
else
{
document.getElementById('FeePerYear').style.display='none';
}
}
}
}

但是只能实现单选的时候还可以,当多选的时候,比如3项一起选择的时候,这个标签就弹不出来了。就是不知道该如何解答这个问题。请问如果我要实现该功能,该怎么实现?
...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangtzeu 2007-12-23
  • 打赏
  • 举报
回复
var   flag=true;   
var temp="";
var tmp;
if((form1.[此处为复选框name].length+"")=="undefined")
{
tmp = 1
}else{
tmp = form1.[此处为复选框name].length
}
if (tmp==1){
if (form1.[此处为复选框name].checked)
{
flag=false;
temp=form1.[此处为复选框name].value
}
}else{
for (i=0;i<form1.[此处为复选框name].length;i++)
{
if (form1.[此处为复选框name][i].checked)
{
if (temp=="")
{
flag=false;
temp=form1.[此处为复选框name][i].value
}else{
flag=false;
temp = temp +","+ form1.[此处为复选框name][i].value
}
}
}
}

if (flag)
{
alert("对不起,你还没有选择!");
}
yangtzeu 2007-12-23
  • 打赏
  • 举报
回复
var   flag=true;   
var temp="";
var tmp;
if((form1.[此处为复选框name].length+"")=="undefined")
{
tmp = 1
}else{
tmp = form1.[此处为复选框name].length
}
if (tmp==1){
if (form1.[此处为复选框name].checked)
{
flag=false;
temp=form1.[此处为复选框name].value
}
}else{
for (i=0;i<form1.[此处为复选框name].length;i++)
{
if (form1.[此处为复选框name][i].checked)
{
if (temp=="")
{
flag=false;
temp=form1.[此处为复选框name][i].value
}else{
flag=false;
temp = temp +","+ form1.[此处为复选框name][i].value
}
}
}
}

if (flag)
{
alert("对不起,你还没有选择!");
}
redcn2004 2007-12-22
  • 打赏
  • 举报
回复
是不是出故障了?明明有四条回复,怎么看不到?
iceblockchina 2007-12-21
  • 打赏
  • 举报
回复
function showFeePerYear()
{
var a = document.all.FeeModeID.options;
var flg = false
for(var i=0;i <a.length;i++)
{
if (a[i].selected && a[i].value == '1')
{
flg = true;
break;
}
}

if(flg)
document.getElementById('FeePerYear').style.display = '';
else
document.getElementById('FeePerYear').style.display = 'none';
}
redcn2004 2007-12-21
  • 打赏
  • 举报
回复
yixianggao 你好,感谢你的回复。不过你的代码没有实现我想要的效果。并不是我点击值为1这个选项的时候出现问题,这个我的代码已经实现了。我要的是,当用Ctrl或者Shift选择多项,其中也包括值为1的这项,当我失去焦点的时候,会出现提示输入金额的提示。现在的问题是,我单选择一个值为1的选项时,提示输入金额这项是可以出来,但是当多选的时候,就不会出来了。即使其中选择了值为1的这项。
yixianggao 2007-12-21
  • 打赏
  • 举报
回复
L@_@K

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="Gao YiXiang" />
<meta name="email" content="yixianggao@126.com" />
<meta name="keywords" content="javascript dhtml dom" />
<meta name="description" content="I love web development." />
</head>
<body>
<select name="FeeModeID" size="28" multiple style="width: 200px; height: 200px;"
onblur="showFeePerYear();">
<option value="1">一次收费,全年免费 </option>
<option value="2">先缴费后面试 </option>
<option value="3">先面试后缴费 </option>
</select>
<label id="FeePerYear" style="display: none;">
请输入收费金额:
<input name="FeePerYear" type="text" size="10" maxlength="10" />
</label>
</body>
<script type="text/javascript">
<!--
function showFeePerYear()
{
var a = document.all.FeeModeID.options;
var selVals = new Array();

for(var i=0;i <a.length;i++)
{
if (a[i].selected)
selVals[selVals.length] = a[i].value;
}

if(selVals.length == 1 && selVals[0] == '1')
document.getElementById('FeePerYear').style.display = '';
else
document.getElementById('FeePerYear').style.display = 'none';
}

//-->
</script>

</html>
yixianggao 2007-12-21
  • 打赏
  • 举报
回复
L@_@K

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="Gao YiXiang" />
<meta name="email" content="yixianggao@126.com" />
<meta name="keywords" content="javascript dhtml dom" />
<meta name="description" content="I love web development." />
</head>
<body>
<select name="FeeModeID" size="28" multiple style="width: 200px; height: 200px;"
onblur="showFeePerYear();">
<option value="1">一次收费,全年免费 </option>
<option value="2">先缴费后面试 </option>
<option value="3">先面试后缴费 </option>
</select>
<label id="FeePerYear" style="display: none;">
请输入收费金额:
<input name="FeePerYear" type="text" size="10" maxlength="10" />
</label>
</body>
<script type="text/javascript">
<!--
function showFeePerYear()
{
var a = document.all.FeeModeID.options;
var selVals = new Array();

for(var i=0;i <a.length;i++)
{
if (a[i].selected)
selVals[selVals.length] = a[i].value;
}

if(selVals.length == 1 && selVals[0] == '1')
document.getElementById('FeePerYear').style.display = '';
else
document.getElementById('FeePerYear').style.display = 'none';
}

//-->
</script>

</html>

61,125

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧