天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 4530|回复: 10

怎么获取select集合的值

[复制链接]
jariy 发表于 2011-5-23 11:49:27 | 显示全部楼层 |阅读模式
本帖最后由 shary 于 2011-5-31 14:43 编辑

我在表单里用计算脚本生成了一组select控件,我现在想在表单的保存按钮执行前将这组select控件的值赋值到指定的文本框里,我想知道我应该怎么去做?
shary 发表于 2011-5-23 12:05:49 | 显示全部楼层
您好,请问你的计算脚本是生成一个下拉列表框吗?平台有下拉框控件的。如果直接用计算脚本生成的下拉框好像不能根据你选的值赋值给文本框。能具体描述下您的业务需求吗?谢谢!!!
 楼主| jariy 发表于 2011-5-23 12:29:25 | 显示全部楼层
是生成一组下拉框的控件,因为我的这些下拉框是根据后面数据动态生成出来的,有多少行就生成多少个下拉框,当初你们的曾经理是告诉我用计算脚本生成这些控件的,然后将这些控件的值在保存按钮执行前赋值以指定的文本框里,因为在你们的Iscript里没有办法得到一组name相同的下拉框的方法,所以我想通过脚本实现,但是我又不知道怎么在保存按钮的脚本里调用js方法。汗,瞒纠结的啊。。。。。。
shary 发表于 2011-5-23 13:47:51 | 显示全部楼层
保存按钮也是可以写html元素的啊。类似:var script ="<script>function....<script>";不晓得这样可不可以帮到你。有问题我们再沟通。
 楼主| jariy 发表于 2011-5-23 13:51:47 | 显示全部楼层
保存按钮里的写例如下面的
var script="<script>function aa(){ alert('aaaaa');}"</script>
"<script>aa()</script>";
我想知道我怎么调用这个aa的方法,能不能给个实例?,如果说我直接在脚本里写"<script>aa()</script>"这样aa()这个方法是否会执行?
shary 发表于 2011-5-23 14:37:11 | 显示全部楼层
如果你说说你要在保存执行后脚本那里获取的话你用这个试一下。getParameterAsArray("你的下拉框名")//返回的是数组。你试一下。
 楼主| jariy 发表于 2011-5-23 17:19:33 | 显示全部楼层
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
 楼主| jariy 发表于 2011-5-23 17:22:36 | 显示全部楼层
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>
<select name='self'></select>

假如我有上面这些name="self"的下拉框,我现在想获得这些下拉框的当前值,我要怎么获取?
如果我将一些js获取的下拉框的值写成的脚本,我在保存按钮里要怎么调用?

  1. function setAllItemsValue(itemNames,toNames){       
  2.         var items="";
  3.         var tt='script';
  4.         var temp='';
  5.         items+='<'+tt+'>';
  6.         items+='function getItemsValueHid(itemNames,toName){';
  7.         items+='        var temp="";';
  8.         items+='        var item=document.getElementsByName(itemNames);';
  9.         items+='        if(item && item.length>0){';
  10.         items+='                var tcount=item.length;';
  11.         items+='                for(var j=0;j<tcount;j++){';
  12.         items+='                        temp+=item[j].value+"||";';
  13.         items+='                }';
  14.         items+='                if(""!=temp){';
  15.         items+='                        temp=temp.substring(0,temp.length-2);';
  16.         items+='                }';
  17.         items+='                var tempsub=document.getElementsByName(toName);';
  18.         items+='                if(tempsub && tempsub[0]){';
  19.         items+='                        tempsub[0].value=temp;';
  20.         items+='                }';
  21.         items+='        }';
  22.         items+='}';

  23.         if(itemNames.constructor==Array){
  24.                 var count=itemNames.length;
  25.                 for(var i=0;i<count;i++){
  26.                         temp+='getItemsValueHid("'+itemNames[i]+'","'+toNames[i]+'");';
  27.                 }
  28.         }else{
  29.                 temp+='getItemsValueHid("'+itemNames+'","'+toNames+'");';
  30.         }

  31.         items+=temp;
  32.         items+='</'+tt+'>';
  33.         $PRINTER.println("=============true :"+items);
  34.         return items;
  35. }
复制代码
上面是函数库里的方法,我现在要执行返回的字符串,在保存按钮里应该运行这个方法的执行结果?
shary 发表于 2011-5-23 17:32:05 | 显示全部楼层
你好用getParameterAsArray("self")就可以获取你那堆下拉框的值。
遍历的脚本就是类似下面这样:

var datas =getParameterAsArray("self");
for(int i=0;i<datas.length;i++){
    var value=datas[i];
}

您先看下。如果遇到问题我们在沟通。刚刚开会去了。现在才回复。不好意思。
 楼主| jariy 发表于 2011-5-23 18:31:11 | 显示全部楼层

  1. function setAllItemsValue(itemNames,toNames){       
  2.         var doc = getCurrentDocument();
  3.         $PRINTER.println("=============doc  :"+doc);
  4.         var temp="";
  5.         if(itemNames.constructor==Array){
  6.                 var count=itemNames.length;
  7.                 for(var i=0;i<count;i++){
  8.                         temp="";
  9.                         var items=getParameterAsArray(itemNames[i]);
  10.                         if(items!=null && items.length>0){
  11.                                 for(var j=0;j<items.length;j++){                                       
  12.                                         temp+=items[i]+"||";
  13.                                 }                               
  14.                         }
  15.                         $PRINTER.println("=============temp :"+temp);
  16.                         var tub=doc.findItem(toNames[i]);
  17.                         var tub2=getItemValueAsString(toNames[i]);
  18.                         $PRINTER.println("=============getItemValueAsString :"+tub2);
  19.                         $PRINTER.println("=============toNames :"+toNames[i]);
  20.                         $PRINTER.println("=============tub :"+tub);
  21.                         //doc.findItem(toNames[i]).setValue(temp);
  22.                         tub.setValue(temp);
  23.                 }
  24.         }else{
  25.                 var items=getParameterAsArray(itemNames);
  26.                 if(items!=null && items.length>0){
  27.                         for(var j=0;j<items.length;j++){                                       
  28.                                 temp+=items[i]+"||";
  29.                         }                               
  30.                 }
  31.                 doc.findItem(toNames).setValue(temp);
  32.         }
  33. }
复制代码
这是下面的异常 搞不明白啥意思

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 14:17

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表