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> 
相关问题