La saisie de mots entraîne des erreurs NaN pour les points de données
P粉043295337
P粉043295337 2024-04-01 16:24:49
0
1
462

Lorsque je tape un mot, cela m'affiche une erreur avec NaN dans l'alerte. Le message de réussite affiche la valeur correcte, mais l'alerte affiche une erreur NaN. pointstotalPoints Déclaré en dehors du champ d'application de la fonction

   var wordList = ["jalapeno", "nopal", "jalap", "paeon", "panel", "pelon", "penal", "plena", "pleon", "plane"]
var wordInput = $('#word-input');
var totalPoints = 0; // initialize total points variable
var points = 0;

var notEmpty = function(message) {
  $('.sb-message-box').addClass('error-message').text(message);
  // $('.sb-hive-input-content').addClass('not-empty').text(message); 
  setTimeout(function() {
    $('#word-input').val('');
    // $('.sb-hive-input-content').removeClass('not-empty').text('');
    $('.sb-message-box').removeClass('error-message').text('');
  }, 1000);
}

var hasError = function(message) {
  $('.sb-message-box').addClass('error-message').text(message);
  $('.sb-hive-input-content').addClass('has-error').text(message);
  setTimeout(function() {
    $('#word-input').val('');
    $('.sb-hive-input-content').removeClass('has-error').text('');
    $('.sb-message-box').removeClass('error-message').text('');
  }, 1000);
}

var successMessage = function(message) {
  $('.sb-message-box').addClass('success-message').text(message);
  $('.sb-message-box').addClass('sb-message').text(message);
  $('.sb-hive-input-content').addClass('isAccepting').text();
  setTimeout(function() {
    $('#word-input').val('');
    $('.sb-message-box').removeClass('success-message').text('');
    $('.sb-message-box').removeClass('sb-message').text('');
    $('.sb-hive-input-content').removeClass('isAccepting').text();
  }, 1000);
}

// Define click function for enter-btn
$('#enter-btn').click(function() {

  var word = wordInput.text().trim();
  var centerLetter = $('.hive-cell.center .cell-letter').text();

  console.log(word)


  // Statements & conditions
  if (word.trim().length === 0) {
    notEmpty('Enter a word');

  } else if (word.length <= 3) {
    $('.sb-hive-input-placeholder').text(word);
    hasError('Too short');

  } else if (word.indexOf(centerLetter) === -1) {
    $('.sb-hive-input-placeholder').text(word);
    hasError('Missing center letter');

  } else if (word.length > 3 && !wordList.includes(word.toLowerCase())) {
    $('.sb-hive-input-placeholder').text(word);
    // hiveInput.removeClass('sb-hive-input-placeholder');
    hasError('Not in word list');

  } else if (wordList.includes(word.toLowerCase()) && !result.includes(word.toLowerCase())) {

    // Get letter count of the word

    var letterCount = word.length;
    if (letterCount === 4) {
      points = 1;
      successMessage('Good! ' + points + 'point.');
    } else if (letterCount === 5) {
      points = 5;
      successMessage('Good! ' + letterCount + ' points.');
    } else if (letterCount === 6) {
      points = 6;
      successMessage('Good! ' + letterCount + ' points.');
    } else if (letterCount === 7) {
      points = 7;
      successMessage('Good! ' + letterCount + ' points.');
    } else if (letterCount === 8) {
      // Checks if the word is a pangram
      points = 15;
      successMessage('Got a pangram! 15 points!');
    } else {
      successMessage('Good! ' + letterCount + ' letters. Keep going!');
    }
    alert(points);
    console.log(points);
    totalPoints = totalPoints + points;
  }
});

    // Create and Set Cookie
    function setCookie(cookieName, cookieValue, daysToExpire, path) {
        var date = new Date();
    
        date.setTime(date.getTime() + (daysToExpire * 24 * 60 * 60 * 1000));
        document.cookie = cookieName + "=" + JSON.stringify(cookieValue) + "; expires=" + date.toGMTString() + ";   path=" + path ;
        console.log("setCookieValue: " + JSON.stringify(cookieValue));
    }
    
    setCookie('Result', result, 1, '/');

P粉043295337
P粉043295337

répondre à tous(1)
P粉124890778

Vous n'enregistrez jamais la valeur de vos points dans la valeur totalPoints, donc totalPoints ne peut pas s'empiler. Plus important encore, vous devez placer la variable de stockage en dehors de la portée de la fonction. Dans votre cas, vous définissez simplement totalPoints sur 0 à chaque fois que vous appelez la fonction.

La solution est donc :

        var totalPoints = 0; // initialize total points variable
        let wordList = ["test", "test2", "test3", "test4", "testtest"] // Changed
        let result = [] // Changed
        
        // Define click function for enter-btn
        $('#enter-btn').click(function() {   
          let points = 0; // Changed
          let wordInput = document.getElementById("inputTxt") // Changed
          var word = wordInput.value.trim(); // Changed
          var centerLetter = $('.hive-cell.center .cell-letter').text();

          // functions
          var notEmpty = function(message) { 
              $('.sb-message-box').addClass('error-message').text(message); 
                  // $('.sb-hive-input-content').addClass('not-empty').text(message); 
              setTimeout(function() {
                  $('#word-input').val('');
                  // $('.sb-hive-input-content').removeClass('not-empty').text('');
                      $('.sb-message-box').removeClass('error-message').text('');
              }, 1000); 
          } 

          var hasError = function(message) { 
              $('.sb-message-box').addClass('error-message').text(message);
                  $('.sb-hive-input-content').addClass('has-error').text(message); 
              setTimeout(function() {
                  $('#word-input').val('');
                      $('.sb-hive-input-content').removeClass('has-error').text('');
                          $('.sb-message-box').removeClass('error-message').text('');
              }, 1000); 
          } 

          var successMessage = function(message) { 
                  $('.sb-message-box').addClass('success-message').text(message); 
                  $('.sb-message-box').addClass('sb-message').text(message); 
                      $('.sb-hive-input-content').addClass('isAccepting').text(); 
              setTimeout(function() {
                  $('#word-input').val('');
                      $('.sb-message-box').removeClass('success-message').text('');
                      $('.sb-message-box').removeClass('sb-message').text('');
                          $('.sb-hive-input-content').removeClass('isAccepting').text(); 
                  }, 1000); 
          }

          // Statements & conditions
          if (word.trim().length === 0) { 
              notEmpty('Enter a word');

          } else if (word.length  3 && !wordList.includes(word.toLowerCase())) { 
              $('.sb-hive-input-placeholder').text(word);
              // hiveInput.removeClass('sb-hive-input-placeholder');
              hasError('Not in word list');

          } else if (wordList.includes(word.toLowerCase()) && !result.includes(word.toLowerCase())) {

          // Get letter count of the word

          var letterCount = word.length;
          if (letterCount === 4) {
              points = 1;
              successMessage('Good! ' + points + 'point.');
          } else if (letterCount === 5) {
              points = 5;
              successMessage('Good! ' + letterCount + ' points.');
          } else if (letterCount === 6) {
              points = 6;
              successMessage('Good! ' + letterCount + ' points.');
          } else if (letterCount === 7) {
              points = 7;
              successMessage('Good! ' + letterCount + ' points.');
          } else if (letterCount === 8) {
              // Checks if the word is a pangram
              points = 15;
              successMessage('Got a pangram! 15 points!');
          } else {
              successMessage('Good! ' + letterCount + ' letters. Keep going!');
          }
          //alert(points);
          console.log("new points: " + points);
          totalPoints += points;
          console.log("totalPoints: " + totalPoints);
          result.push(word.toLowerCase())
          }
        })
sssccc

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal