通过javascript组合和评估用户输入的最佳方式是什么?

时间:2017-05-09 05:38:13

标签: javascript if-statement output user-input user-defined-functions

(我对此很新,请耐心等待)

我正在制作几个需要用户输入的模块,我想以某种方式组合输入以产生输出。我在考虑为每个选项分配一个值并将它们加在一起并创建一个if / else语句来确定输出...
例如,如果用户选择值为1,2,3的三个选项,并且语句说任何大于5的组合值将得到“好”的结果,则所选选项将得到“好”的响应,因为当结合起来,它们等于6(> 5)。

有没有人知道更好的方法,和/或你能指导我到一些可能有我正在寻找的参考站点吗?

非常感谢!!任何帮助表示赞赏!!

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个。 要查看结果,请检查您的控制台。

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

答案 1 :(得分: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