登录名:  密码:  验证码: 5177
设为首页 收藏本站 联系站长
2009年1月7日
农历戊子年(鼠)
腊月十二
 首页 | 最新上传 | 新闻 | 购物商场 | 招聘求职 | HTML学习 | java学习 | IT新闻 | 黑客技术 | 域名和空间 | 流量统计 | 故事小说
 GIF动画制作 | 图片素材 | 源码下载 | 书籍下载 | 视频资料 | ASP | 数据库 | PHP | 基本电脑知识 | 迅雷资源 | 兼职 | 组网工程
 英语学习 | FLASH专区 | ASP.NET | VB | 综合资源网 | 驱动下载 | 游戏下载 | 网站模板网页美工 | 韩文学习 | 论坛
 特别推荐:产品报价  漂亮网站网址  图片素材
  我要查找:  
欢迎您来这里。每天学一点,每天进步一点!
Google
 当前位置:首页 >> HTML学习  >> javascript学习
页面表单中的多选列表如何获取值和附值
来源:  发表日期:2008年1月31日 作者: 

 编辑:admin 级别: 司令 浏览次数:120
】    

问:
就是带有Multiple属性的Select对象,要实现多选功能,如何获取提交该对象的值保存到别处,以及如何根据从别处获取的值设置该Select的选择项?

______________________________________________________________________________________________
答1:
不太明白你指的别处是什么意思.  我就这么理解了:

<FORM METHOD=POST ACTION="" name="form1">
<SELECT NAME="ss"  multiple>
<option>aaa</option>
<option>bbb</option>
<option>ccc</option>
<option>ddd</option>
<option>eee</option>
<option>fff</option>
</SELECT>
</FORM>
<INPUT TYPE="button" value="click" onclick="show()" id="slum">
<SCRIPT LANGUAGE="JavaScript">
<!--
function show()
{
  var str=""
  var len=document.form1.ss.options.length
  for(var i=0;i<len;i++)
   {
     if(document.form1.ss.options[i].selected==true)
    {
          str=str+document.form1.ss.options[i].text + ","
    }
   }

   alert(str)
}
//-->
</SCRIPT>

当然还可以保存在数组里.
______________________________________________________________________________________________
答2:
<FORM METHOD=POST ACTION="" name="form1">
<SELECT NAME="ss"  multiple>
<option>aaa</option>
<option>bbb</option>
<option>ccc</option>
<option>ddd</option>
<option>eee</option>
<option>fff</option>
</SELECT>
<INPUT TYPE="text" NAME="text1" value="slum">
</FORM>
<INPUT TYPE="button" value="click" onclick="show()" id="slum">
<SCRIPT LANGUAGE="JavaScript">
<!--
function show()
{
  if(document.form1.ss.selectedIndex!=-1)
  {
     var str=document.form1.text1.value
     document.form1.ss.options[document.form1.ss.selectedIndex].text=str
  }
  else
    {
       alert("please select one item")
 }
}
//-->
</SCRIPT>
______________________________________________________________________________________________
答3:
我指的别处是指通过表单提交被另外一个页面获取,并作为一个字段保存到数据库中去。
多选的时候,document.form1.ss.options[document.form1.ss.selectedIndex]获得的只是列表被选中的第一项。
如果我在当前页面submit后,在submit转向的另外一个页面中如何取得这个表单项的多选列表中的值?然后再转回这个页面,如果根据给定的这个值置列表中的某些选项为selected?
至于数组,我总不至于将一个不定长数组作为一个字段存往数据库吧。
______________________________________________________________________________________________
答4:
后台的我不懂, 不过w3c的html4.0 ref 中说了: 当select是多选时, 表单提交后应该是选中的都提交.后台接收会不会是一个数据集合? 
你可以将字符串付给hidden么. 不过有点麻烦了.
______________________________________________________________________________________________
答5:
交给后台,我也是这么想的,
下面是我的一个例子,就是页面刷新是我不知道怎么保存页面再显示刚才修改的值(也就是说如何在页面开头获取刚才表单的那个值),全清空了
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript">
function doSubmit1()
{
 var val = document.form1.textno.value;
 var no = parseInt(val);
 if(no>=16 || no<=0)
 {
  alert("输入的数字范围错误!");
  return;
 }
 else
  document.form1.tno.value = val;
}

function doSubmit2()
{
 var no = 0;
 for(i=0;i<document.form1.mselect;i++)
 {
  if(document.form1.mselect.options[i].selected==true)
   no += pow(2,index)
 }
 document.form1.tno.value = val;
}

function initList()
{
 var val = document.form1.tno.value;
 var no = parseInt(val);
 while(no>0)
 {
  var index = Math.floor(Math.log(no)/Math.log(2));
  document.form1.mselect.options[index].selected=true;
  no -= Math.pow(2,index);
 }
}
</script>
<body>
<form name="form1" method="post" action="">
  <div align="center">
    <p>
   <input type="hidden" name="tno">
      <input name="textno" type="text" id="textno">
      <input type="submit" name="Submit" value="提交" onClick="doSubmit1();">
</p>
    <p>
      <select name="mselect" size="20" multiple>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
      </select>
        </p>
      <input type="submit" name="Submit" value="提交" onClick="doSubmit2();">
  </div>
</form>
<script language="javascript">
initList();
</script>
</body>
</html>

______________________________________________________________________________________________
答6:
你的写法好像有点问题, 你这么写,不管数字是否超出范围都会提交.
你的意思是不是当页面提交后,文本框的输入值不变, 以便可以继续修改?如果是这样,有几个方法你试试吧, 都是别人以前用过的:
1. <form target="_blank">
2. <input value="<%=Request.form("a")%>" name="a">
3. 每个输入框后对应一个<input type="hidden"> 存储该值 然后回写

 

(编辑:网站学习网)
Google
 ·上一篇文章: 调用javascript函数控制onunload
 ·下一篇文章: JavaScript中window.event.keyCo
 该篇文章的评论
 暂无相关评论
 姓名:  邮箱:
 内容:
                
 相关文章
 · 怎么将checkbox, radio,
 · 怎样让DIV定位在页面中间
 · 甘特图对象的JavaScript
 · js如何打开doc文件
 · 帧(frame)之间参数传递
 · 再问怎样使一个已经打开
 · window.open最大化的问题
 · JAVASCRIPT怎样清除IE缓
 · 可不可以用javascript为
 · window.open怎样把打开窗
 · 如何在父窗口调用子窗口
 最新上传文章
 · 建立企业信息化 &n
 · 80后IT四少:媒体塑造了我
 · 我国企业电子商务交易总
 · asp连接带有密码的acces
 · 互联网应用广泛 电
 · Adobe Illustrator
 · delphi程序打包安装制作
 · 企业邮件管理有新招&nbs
 · toolbar图标:ToolBar上的
 · 怎么在delphi中的按钮中
 · 实用技巧:重现被误删消失

服务说明 | 关于网站 | 联系我们 | 友情链接
网站学习网欢迎您!
http://www.studywebgood.com
浙ICP备07030755号 
联系邮箱:shuizhilang@126.com 如本网站侵犯了您的版权,请马上通知我.