Score Not Incrementing and errors

My Code Is about +1 score for every correct answer. Only a score of one is achieving for first question1 and when i type the correct answer for question2 score is not incrementing. My final score should be 2 since i have only two questions but whats happening in my code is that if i delete first answer ‘yes’ score is going to 4 and so on. Dont know where the error in my code is…


<div id="score" style="font: bolder 20px courier">score: 0</div>
<input type="text" id="question" />
<input type="text" id="question1" />

<script>
var answers = {
    'question': 'yes',
     'question1': 'no',

};

var score = 0;

function checkResults() {

    var $this = $(this),
        val = $this.val().toLowerCase();

    for (var k in answers) {
        if (answers.hasOwnProperty(k)) {

            if (k == $this.attr('id') && answers[k] === val) {
                $this.css('background-color', 'green');
                score += 1;

                break;
            } else {
                $this.css('background-color', 'red');
            }

        }
    }


    if (score == 2) {
        alert('Hi Ur Score is 2');
    }


    $('#score').text('score: ' + score);

}

$('input').on('keyup', checkResults);
</script>

remove the break statement, it will end after the first match no matter if there are other correct ones.

I removed break but of no use, stil the same issue as i explained in the post.

I would do it like so:

<div id="score">score: 0</div>
<input type="text" id="question" />
<input type="text" id="question1" />

var answers = {
    'question': 'yes',
    'question1': 'no',
};

function getScore(el) {
  var score = 0;
  $("input[id^='question'").each(function(){
      if (answers[this.id] === this.value){
        score += 1;
        $(this).addClass("correct");
      } else {
        $(this).removeClass("correct");
      }
  });

  return score;
}

$('input').on('keyup', function(){
  $('#score').text('score: ' + getScore());
});

Demo