在列表框中存储javascript值(ASP.NET)

在列表框中存储javascript值(ASP.NET),javascript,asp.net,listbox,Javascript,Asp.net,Listbox,我有一个按钮,可以打开一个弹出窗口,让我从列表中选择一些内容,然后返回到带有ID和NAME变量的父页面。在父页面中,我将ID存储在隐藏字段中,将名称存储在文本框中。 当我从列表中选择一件事情时,这是可以的。但现在我想选择多个对象,并将ID和名称存储在listbox值和文本属性中。 我该怎么做? 这些是我用于文本框和隐藏字段的javascript代码 <script type="text/javascript"> function get_selected_machine(ID,

我有一个按钮,可以打开一个弹出窗口,让我从列表中选择一些内容,然后返回到带有ID和NAME变量的父页面。在父页面中,我将ID存储在隐藏字段中,将名称存储在文本框中。 当我从列表中选择一件事情时,这是可以的。但现在我想选择多个对象,并将ID和名称存储在listbox值和文本属性中。 我该怎么做? 这些是我用于文本框和隐藏字段的javascript代码

<script type="text/javascript">
  function get_selected_machine(ID, NAME) {
      document.getElementById("txtName").value = NAME;
      document.getElementById("hdnID").value = ID;
    }
</script>

函数获取所选机器(ID、名称){
document.getElementById(“txtName”).value=NAME;
document.getElementById(“hdnID”).value=ID;
}

下面是一个非常简单的示例,说明了如何使用纯JavaScript从列表框中获取值。一旦拥有这些值,您将决定如何在客户机上存储它们

HTML:

<select id="multiSelect" size="5" multiple="multiple">
    <option value="o1">Option 1</option>
    <option value="o2">Option 2</option>
    <option value="o3">Option 3</option>
    <option value="o4">Option 4</option>
    <option value="o5">Option 5</option>
    <option value="o6">Option 6</option>
</select>
<br />
<button id="btnGetValues" onclick="GetValues()">Get Values</button>

选择1
选择2
选择3
选择4
备选案文5
备选案文6

获取价值
JavaScript

function GetValues() {
    //Get select object
    var myList = document.getElementById("multiSelect");

    //Create array to store selected values
    var aryMySelectOptions = new Array();

    //Loop through all values and grab selected
    for (var i = 0; i < myList.options.length; i++) {
        if (myList.options[i].selected) {
            aryMySelectOptions.push(new selectOption(myList.options[i].innerText, myList.options[i].value));
        }
    }

    //Loop through selected values and alert for debugging purposes
    for (var i = 0; i < aryMySelectOptions.length; i++) {
        alert("Text: " + aryMySelectOptions[i].text + ". Value: " + aryMySelectOptions[i].value + ".");
    }
}

function selectOption(text, value) {
    var text;
    var value;

    this.text = text;
    this.value = value;
}
函数GetValues(){
//获取选择对象
var myList=document.getElementById(“multiSelect”);
//创建数组以存储选定的值
var aryMySelectOptions=新数组();
//循环遍历所有值并抓取所选值
对于(var i=0;i
这是一个例子


注意:JSFIDLE使用jQuery,但仅作为附加到按钮单击事件的一种方式。我没有将jQuery用于任何其他用途,因为我假设您需要纯JS解决方案(您没有在帖子中标记jQuery)。

这非常简单。您可以使用以下函数-

function selectCompany(text, value)
 {      
    var opt = document.createElement("option");
    document.getElementById('<% =listBoxId.ClientID %>').options.add(opt);
    opt.text = text;
    opt.value = value;
}
函数选择公司(文本、值)
{      
var opt=document.createElement(“选项”);
document.getElementById(“”).options.add(opt);
opt.text=文本;
opt.value=值;
}

我希望这会对您有所帮助。

我有点困惑,为什么您要使用jQuery附加事件,然后编写这些复杂的循环,而这些循环只需要另一个简单的jQuery选择器就可以完成。@asawyer,我将更新帖子以使其更清楚。OP请求了一个纯JS解决方案-他们没有标记jQuery。我发现,通过使用jQuery附加到事件,可以更容易地在JSFIDLE中组合一个示例。相信我,如果他们给jQuery加上标签,我会充分利用它!顺便说一下,当我在页面中启动一些控件时,从javascript获取值的列表框中的数据会丢失吗?对于这种情况,是否有一种解决方案来保存列表框中的项目?@enginebilici,听起来页面正在发回并丢失选择。最好再发一个问题。在注释中询问其他问题会变得非常混乱。为什么不在这两个元素中添加逗号分隔的列表呢?