【问题标题】:post all values in select box /listbox在选择框/列表框中发布所有值
【发布时间】:2011-02-11 12:01:01
【问题描述】:

我在一个表单上有一个选择框 - 我已经通过放置

将它变成了一个列表框
 <select id="Select1" name="D1" size="5" style="width: 220px">

我正在用值填充这个选择/列表框...

当我发布表单时,如何获取选择框中的所有值。这可能吗,还是我只能获取已选择的值。

问题是我想要选择中的所有值(我没有选择任何这样的值)

有什么想法吗?

【问题讨论】:

    标签: html asp-classic webforms


    【解决方案1】:
    for (int i = source.Items.Count - 1; i >= 0; i--)
            {
                ListItem item = source.Items[i];
    
                if (moveAllItems)
                    item.Selected = true;
    
                if (item.Selected)
                {
                    // if the target already contains items, loop through
                    // them to place this new item in correct sorted order
                    if (target.Items.Count > 0)
                    {
                        for (int j = 0; j < target.Items.Count; j++)
                        {
                            if (target.Items[j].Text.CompareTo(item.Text) > 0)
                            {
                                target.Items.Insert(j, item);
                                item.Selected = false;
                                break;
                            }
                        }
                    }
    
                    // if item is still selected, it must be appended
                    if (item.Selected)
                    {
                        target.Items.Add(item);
                        item.Selected = false;
                    }
    
                    // remove the item from the source list
                    source.Items.Remove(item);
                }
            }
    

    【讨论】:

    • 这条评论没有帮助。一些上下文会很好。这是服务器端还是客户端?你忘记声明了吗?什么是 moveAllItems?
    【解决方案2】:

    在提交表单之前,您可以使用一些 JavaScript 将项目从选择中拉出并将它们放入隐藏的文本字段(作为分隔字符串)

    例如,您可以使用

    获取值
    var select1 = document.getElementById('select1');
    var values = new Array();
    
    for(var i=0; i < select1.options.length; i++){
        values.push(select1.options[i].value);
    }
    
    var allValues = values.join(";");
    alert(allValues);
    

    希望对您有所帮助。

    【讨论】:

    • 好的..我认为这是要走的路。但我试图在选择中获取每个值,但在获取值时遇到问题。我所拥有的是: function doSelects() { var select1=document.getElementById("select1"); for (s1 = 1; s1
    • 是 select1.options[s1].value 这显然是不正确的,但不知道正确的语法
    • 我已经用一个适合我的例子更新了我的答案。您将希望从零开始运行您的 for 循环,并以比 options.length 小一结束,因为 options 是一个从零开始的数组。
    【解决方案3】:

    如何将值添加到列表框中?它们是静态的还是从数据库中提取的。

    如果您从数据库中提取数据,我会创建一个函数,用于获取数据并绑定到列表框。

    然后,当您想在发布后获取这些值时使用相同的函数。您可能必须首先使用一些隐藏字段来传递用于获取列表框值的任何参数。

    示例:

    function get_models_for_make(int make_id)
      mydata_rs = SELECT name, id FROM models WHERE make_id = make_id
      return mydata_rs
    end
    

    因此您可以使用此数据将对象绑定到列表框,并使用它来获取稍后绑定到列表框的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多