在html中选择多个select和javascript值

时间:2014-03-11 13:51:26

标签: javascript jquery html ajax asp-classic

我正在尝试使用经典的asp和javascript进行一些AJAX工作。

我的HTML代码看起来像这样。

    <Select name="sName" multiple onchange="showMe(this.value)">
      <option value="000"></option>
      <option value="1">one</option>
      <option value="2">two</option>
      <option value="3">three</option>
      <option value="4">four</option>
    </Select

我的javascript看起来像这样

function showMe(sID) {
    var clID;
    if (sID == "") {
        document.getElementById("sDetails").innerHTML = "";
        return;
    }
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("sDetails").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "sList.asp?sID=" + sID + "&clID=" + clID, true);
    xmlhttp.send();
}

除了上面的代码之外,我还有一个名为sDetails的表,其中填充了表。

我的问题是多重选择。此代码仅采用最后一次选择。

如果我运行sList.asp?sID = 5,6&amp; clID = 10,103该页面以表格格式给出了所需的结果。

感谢您的帮助。

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

<script>
function showMe(t) {
    var a = [];
    for ( var i = 0, l = t.options.length; i < l; i++ ) {
      var o = t.options[i];
      if (o.selected) {
        a.push(o.value);
      }
    }    
    var sID = a.length ? a.join(',') : 0;
    alert (sID);
}
</script>

<form name="selectTest"> <!-- optional -->
<select name="sName"multiple onchange="showMe(this)">
    <option value="000"></option>
    <option value="1">one</option>
    <option value="2">two</option>
    <option value="3">three</option>
    <option value="4">four</option>
</select>
</form>

演示JSFIDDLE

P.S。当然,您需要在代码中使用它以使其全部正常工作。