簡體   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