2 votes

Problèmes avec mon javascript. Erreur : une valeur est attribuée mais n'est jamais utilisée. [no-unused-var]

J'essaie de créer un calculateur de taxe de vente. J'ai réussi à tout calculer, mais il y a des erreurs dans les fonctions que j'ai créées pour effacer les zones de texte. Je n'ai pas d'autre choix que d'aller voir le site web de l'entreprise. En fait, dans Brackets, je vois que pour chaque fonction de mon fichier .js, mes fonctions ne sont pas réellement appelées. Une erreur apparaît pour chacune d'entre elles disant "is assigned a value but never used".

var $ = function(id)
{
  return document.getElementById(id);
}

var processEntries = function()
{
  var inpSubTotal = parseFloat($("subtotal").value);
  var inpTaxRate = parseFloat($("tax_rate").value);
  if (inpSubTotal <= 0 || subtotal > 10000)
  {
    $("subTotalsMessage").innerHTML = "Subtotal must be > 0 and < 10000";
  }

  if (inpTaxRate <= 0 || inpTaxRate > 12)
  {
    $("taxRateMsg").innerHTML = "Tax rate must be > 0 and < 12";
  }

  var calTax = inpSubTotal * (inpTaxRate / 100);
  calTax = parseFloat(calTax.toFixed(2));
  var totAmt = inpSubTotal + calTax;

  $("sales_tax").value = calTax;

  $("total").value = totAmt.toFixed(2);
}

var clear_click = function()
{
  $("subtotal").value = "";
  $("tax_rate").value = "";
  $("total").value = "";
  $("sales_tax").value = "";
}

function clearSubTotal()
{
  $("subtotal").value = "";
}

function clearTaxRate()
{
  $("tax_rate").value = "";
}

window.onload = function()
{
  $("calculate").onclick = processEntries;
}

<!DOCTYPE html>

<html>

<head>
  <meta charset="utf-8">
  <title>Sales Tax Calculator</title>
  <link rel="stylesheet" href="styles.css" />

  <script src="sales_tax.js"></script>
</head>

<body>
  <div id="content">
    <h1>Sales Tax Calculator</h1>

    <p>Enter Subtotal and Tax Rate and click "Calculate".</p>

    <div id="myTaxCal">
      <label for="subtotal">Subtotal:</label>
      <input type="text" id="subtotal" onclick="clearSubTotal()">
      <span id="subTotalsMessage">Enter order subtotal</span><br />

      <label for="tax_rate">Tax Rate:</label>
      <input type="text" id="tax_rate" onclick="clearTaxRate()">
      <span id="taxRateMsg">Enter sales tax rate (99.9)</span><br />
      <label for="sales_tax">Sales Tax:</label>
      <input type="text" id="sales_tax" disabled><br />

      <label for="total">Total:</label>
      <input type="text" id="total" disabled><br />

      <label>&nbsp;</label>

      <input type="button" id="calculate" value="Calculate">

      <input type="button" id="clear" value="Clear" onclick=textClearer()><br />

    </div>
  </div>
</body>

</html>

1voto

Ben Phung Points 120

Je ne vois aucune erreur dans votre code lorsque je l'exécute sur code pen. la seule chose est que textClearer n'existe pas. Je l'ai remplacé par clear_click et cela a fonctionné.

<input type="button" id="clear" value="Clear" onclick=clear_click()><br />

0voto

HelpNeeder Points 3069

Votre clear_click n'est jamais utilisée. Vous lui attribuez une valeur en en faisant une variable de fonction, mais je ne vois pas qu'elle soit utilisée comme clear_click() .

0voto

drew kroft Points 455

Le code en lui-même fonctionne comme vous l'avez indiqué : https://codepen.io/anon/pen/jJYoww

is assigned a value but never used

Il s'agit plus d'un avertissement que d'une erreur, et cela ne devrait être gênant que si vous utilisez un linter ou autre.

Comme @Phil l'a demandé, où voyez-vous les erreurs, et faites-vous autre chose que ce qui est affiché ?

0voto

brk Points 23303

Il se peut que vous deviez changer le nom de la fonction clear_click à textClearer

var $ = function(id) {
  return document.getElementById(id);
}

var processEntries = function() {
  var inpSubTotal = parseFloat($("subtotal").value);
  var inpTaxRate = parseFloat($("tax_rate").value);
  if (inpSubTotal <= 0 || subtotal > 10000) {
    $("subTotalsMessage").innerHTML = "Subtotal must be > 0 and < 10000";
  }

  if (inpTaxRate <= 0 || inpTaxRate > 12) {
    $("taxRateMsg").innerHTML = "Tax rate must be > 0 and < 12";
  }

  var calTax = inpSubTotal * (inpTaxRate / 100);
  calTax = parseFloat(calTax.toFixed(2));
  var totAmt = inpSubTotal + calTax;

  $("sales_tax").value = calTax;

  $("total").value = totAmt.toFixed(2);
}

var textClearer = function() {
  $("subtotal").value = "";
  $("tax_rate").value = "";
  $("total").value = "";
  $("sales_tax").value = "";
}

function clearSubTotal() {
  $("subtotal").value = "";
}

function clearTaxRate() {
  $("tax_rate").value = "";
}

window.onload = function() {
  $("calculate").onclick = processEntries;
}

<div id="content">
  <h1>Sales Tax Calculator</h1>

  <p>Enter Subtotal and Tax Rate and click "Calculate".</p>

  <div id="myTaxCal">
    <label for="subtotal">Subtotal:</label>
    <input type="text" id="subtotal" onclick="clearSubTotal()">
    <span id="subTotalsMessage">Enter order subtotal</span><br />

    <label for="tax_rate">Tax Rate:</label>
    <input type="text" id="tax_rate" onclick="clearTaxRate()">
    <span id="taxRateMsg">Enter sales tax rate (99.9)</span><br />
    <label for="sales_tax">Sales Tax:</label>
    <input type="text" id="sales_tax" disabled><br />

    <label for="total">Total:</label>
    <input type="text" id="total" disabled><br />

    <label>&nbsp;</label>

    <input type="button" id="calculate" value="Calculate">

    <input type="button" id="clear" value="Clear" onclick=textClearer()><br />

  </div>
</div>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X