繁体   English   中英

JS获得最大值和下拉列表的选定值

[英]JS get Maximum Value and Selected Value of Drop Down List

我的页面中有一系列下拉列表,这些列表具有不同的值,例如某些值的开头为“ NA,1,2,3至100”,其他值则为“ NA,1,2,3至50”,而其他结尾则不同值,但都以“ NA”开头

我正在编写代码以查找所选值的总和以及JS中每个值的百分比。

我得到的总和是所选值的和,但我没有得到百分比。 我想获取所选下拉列表的最大值。

JS功能

    function sum() {
      var result = 0;
      var sval = 0;

      for (var f = 1; f<= 5; f++) {
        var sval = document.getElementById('ddlist_'+f).value;
        if(!isNaN(sval)) {
          var sval = parseFloat(sval);
          result = result + sval;

        }
      }


      }
    }

    window.onload = sum;

Total Value of the Selected List is in Var Result. 
I want to find the Maximum value of all list  

下拉列表示例

    <option value=NA> NA </option><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option>
<option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option>
<option value="11">11</option><option value="12">12</option>
<option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option>
<option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option><option value="22">22</option>
<option value="23">23</option><option value="24">24</option><option value="25">25</option>

输出

<span id="maxtotal " style="color:#06F; font-weight:bold;"></span>

简而言之,当选择“下拉列表”时,我要获取“选定值”和“最后一个”,即“下拉列表”的最大值。

谢谢

您可以访问HTMLSelectElement对象options集合,例如数组。

function sum() {
  var $ = function (str) { return document.getElementById(str); },
      f, ddlist, sval, mval,
      result = 0, maxtotal = 0, percent;

  // try 'ddlist1', 'ddlist2', .. and so on
  f = 1;
  while (ddlist = $('ddlist' + f++)) {
    sval = ddlist.options[ddlist.selectedIndex].value;
    mval = ddlist.options[ddlist.options.length - 1].value;
    if ( !isNaN(sval) && !isNaN(mval) ) {
      result += parseFloat(sval);
      maxtotal += parseFloat(mval);
    }
  }

  percent = (maxtotal > 0) ? result / maxtotal * 100 : 0;

  $('maxtotal').innerHTML = result + ' of ' + maxtotal;
  $('totalper').innerHTML = percent.toFixed(2) + ' %';
}

我认为这是您想要完成的事情: http : //jsfiddle.net/jK5Uq/

这里没有技巧,除了html部分,我几乎没有更改任何代码(原始版本):

<select id='ddlist_1' onchange='sum()'>
    <option value=NA> NA </option>
    <option value="0">0</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>
<select id='ddlist_2' onchange='sum()'>
    <option value=NA> NA </option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
</select>
<select id='ddlist_3' onchange='sum()'>
    <option value=NA> NA </option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
</select>
<select id='ddlist_4' onchange='sum()'>
    <option value=NA> NA </option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
</select>
<p id="maxtotal" />
<p id="totalper" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM