将JavaScript值存储在ListBox(ASP.NET)中

时间:2011-10-04 11:26:30

标签: javascript asp.net listbox

我有一个按钮,打开一个弹出窗口,让我从列表中选择一些东西,然后返回到包含ID和NAME变量的父页面。在父页面中,我将ID存储在隐藏字段中,将NAME存储在文本框中。 当我从列表中选择一件事时,这是可以的。但现在我想选择多个东西,并将ID和NAME存储在列表框值和文本属性中。 我怎样才能做到这一点? 这些是我用于文本框和隐藏字段的JavaScript代码。

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

2 个答案:

答案 0 :(得分:2)

下面是一个非常简单的示例,演示了如何使用纯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>

<强>的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;
}

这是working jsFiddle

注意: jsFiddle使用jQuery,但仅作为附加到按钮的click事件的方法。我没有使用jQuery,因为我假设你想要一个纯粹的JS解决方案(你没有在帖子中标记jQuery)。

答案 1 :(得分:0)

这很容易。您可以使用以下功能 -

function selectCompany(text, value)
 {      
    var opt = document.createElement("option");
    document.getElementById('<% =listBoxId.ClientID %>').options.add(opt);
    opt.text = text;
    opt.value = value;
}

我希望这对你有所帮助。