1

(我很新,請耐心等待)

我正在製作幾個需要用戶輸入的模塊,我想以某種方式組合輸入來生成輸出。我正在考慮爲每個選項分配一個值並將它們加在一起,並創建一個if/else語句來確定輸出...
例如,如果用戶選擇三個值爲1,2,3的選項,任何大於5的組合值將得到「良好」的結果,則所選擇的選項將得到「良好」的響應,因爲當它們組合時,它們等於6(其大於5)。

有誰知道更好的方法,和/或你可以指導我參考一些可能有我在找的網站嗎?

非常感謝!任何幫助表示讚賞!通過javascript結合和評估用戶輸入的最佳方式是什麼?

+0

什麼都做直到現在,顯示你的代碼? – bigbounty

+0

發佈您所做的事情,以便我們實際評估它。 –

+0

@bigbounty這是我的代碼到目前爲止(https://jsfiddle.net/ch889v18/20/) – user3689565

回答

1

你在找這樣的嗎?

<form id="module1"> 
    <input name="option1" type="checkbox" value="Orange"> Orange 
    <input name="option2" type="checkbox" value="Banana"> Banana 
    <input name="option3" type="checkbox" value="Apple"> Apple 
    <input name="option4" type="checkbox" value="Mango"> Mango 
    <input name="option5" type="checkbox" value="Pineapple"> Pineapple 
</form> 
<button id="evaluate" type="button">Evaluate</button> 
<h4 id="result"></h4> 
<h5 id="values"></h5> 

<script type="text/javascript"> 
    $(document).ready(function() { 

     var scoreConstants = { 
      'Mango': 100, 
      'Banana': 100, 
      'Pineapple': 200, 
      'Orange': 50, 
      'Apple': 250 
     }; 

     var evalScore = function (selectedValues) { 
      var totalScore = 0; 
      $.each(selectedValues, function (k, v) { 
       totalScore += scoreConstants[v]; 
      }); 
      return totalScore; 
     } 

     var getScoreLabel = function (score) { 
      var scoreValue = 'Score: '; 
      if (score < 200) { 
       scoreValue += 'Average'; 
      } else if (score >= 200 && score < 500) { 
       scoreValue += 'Good'; 
      } else if (score >= 500) { 
       scoreValue += 'Excellent!'; 
      } 
      return scoreValue; 
     } 


     $('body').on('click', '#evaluate', function (e) { 
      var $selectedValues = $('#module1').find('input:checked'); 
      var selectedValues = []; 
      $selectedValues.each(function (k, v) { 
       var $selected = $(v); 
       selectedValues.push($selected.val()); 
      }); 

      var score = evalScore(selectedValues); 
      var scoreLabel = getScoreLabel(score); 

      var valueString = 'Selected: '; 
      if (selectedValues.length > 0) { 
       $.each(selectedValues, function (k, v) { 
        if (k === (selectedValues.length - 1)) { 
         valueString += v; 
        } else { 
         valueString += v + ', ' 
        } 
       }); 
      } else { 
       valueString += 'None'; 
      } 

      var $result = $('#result'); 
      $result.html(scoreLabel); 

      var $displayValues = $('#values'); 
      $displayValues.html(valueString); 

     }); 
    }); 
</script> 

看到代碼在這裏工作: https://jsfiddle.net/0x2L0dek/1

+0

這似乎成爲我正在尋找的東西。有沒有辦法爲每個輸入分配不同的值?這(https://jsfiddle.net/ch889v18/20/)是我目前的jsfiddle。謝謝你的回覆! – user3689565

+0

我已經更新了我可能可以幫助你的js小提琴:https://jsfiddle.net/0x2L0dek/1/ –

+0

是的!這就是我所需要的,非常感謝你! :) – user3689565

0

我認爲你正在尋找這個。 要查看結果,請檢查您的控制檯。

<input type="checkbox" class="chk" value=1>1</input><br> 
<input type="checkbox" value=2 class="chk">2</input><br> 
<input type="checkbox" value=3 class="chk">3</input><br> 
<input type="checkbox" value=4 class="chk">4</input><br> 

<button id="button1" onclick="checkSum()">Submit</button> 

<script> 
function checkSum(){ 
var chk = document.getElementsByClassName('chk'); 

sum = 0; 
for(var i=0; chk[i]; ++i){ 
     if(chk[i].checked){ 
      sum = sum + parseInt(chk[i].value); 
     } 
} 

console.log(sum); 
if(sum > 5){ 
console.log("Good"); 
} 
} 
</script> 
相關問題