Разница между числами, не работающими на javascript

#javascript #jquery #html #css

#javascript #jquery #HTML #css

Вопрос:

Это раздел кода, в котором, когда я изменяю значение вычета, чистое итоговое значение также изменяется вручную, если значение оказывается правильным, цвет значения будет изменен на зеленый, иначе он изменится на красный. Но в этом коде цвет не меняется на зеленый, когда значение вычета колеблется от 50 до 99, когда разница между общим значением и вычитанием верна.

Как я могу решить эту проблему? Помогите мне

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
        <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script>
function calculatenet(str,str1)
 {
    var id = str1.split('-');
    var cid = id[3];
    var num = id[2].split('net');
    var gross = $("#income-self-gincome" num[1] "-" cid).val();
    var deduct= $("#income-self-deduct" num[1] "-" cid).val();
        if(gross >= deduct)
          {
            var net = parseInt(gross - deduct);

            if(net==str)
              {
                $("#income-self-net" num[1] "-" cid).css('color','green');
              }
            else
              {
                $("#income-self-net" num[1] "-" cid).css('color','red');
              }
          }
        else
          {
            $("#income-self-net" num[1] "-" cid).css('color','red');
          }



        }
</script>
</head>

<body>
<table>
<tr>
                          <td>Gross Total Income.</td>
                          <td><input type="text"  name="income-self-gincome1-1" id="income-self-gincome1-1" style="width:100px" /></td>

                          <td><input type="text"  name="income-self-gincome2-1" id="income-self-gincome2-1" style="width:100px" /></td>

                          <td><input type="text"  name="income-self-gincome3-1" id="income-self-gincome3-1" style="width:100px" /></td>

                          </tr>
                           <tr>
                          <td>Deduction</td>
                          <td><input type="text" name="income-self-deduct1-1" id="income-self-deduct1-1" style="width:100px" /></td>

                          <td><input type="text" name="income-self-deduct2-1" id="income-self-deduct2-1" style="width:100px" /></td>

                          <td><input type="text" name="income-self-deduct3-1" id="income-self-deduct3-1" style="width:100px" /></td>

                          </tr>
                          <tr>
                          <td>Net Total Income</td>
                          <td><input type="text" onKeyUp="calculatenet(this.value,this.id)" name="income-self-net1-1" id="income-self-net1-1" style="width:100px" /></td>

                          <td><input type="text" onKeyUp="calculatenet(this.value,this.id)" name="income-self-net2-1" id="income-self-net2-1" style="width:100px" /></td>

                          <td><input type="text" onKeyUp="calculatenet(this.value,this.id)" name="income-self-net3-1" id="income-self-net3-1" style="width:100px" /></td>

                          </tr>
                          </table>
</body>
</html>
  

Ответ №1:

измените это :

 var net = parseInt(gross - deduct);
  

Для:

 var net = parseInt(gross) - parseInt(deduct);
  

поскольку вам нужно преобразовать оба в целое число, прежде чем выполнять с ними арифметическую операцию.

Редактировать:

также вы не выполняете синтаксический анализ gross и deduct to int , поэтому он не попадает в условный блок if:

  var gross = parseInt($("#income-self-gincome" num[1] "-" cid).val());
            var deduct= parseInt($("#income-self-deduct" num[1] "-" cid).val());
  

Рабочая скрипка

Комментарии:

1. Я пробовал этот код ранее, но это не сработало!

2. можете ли вы создать jsfiddle??

3. @user3807558 смотрите, отредактированный пост также внес изменения

4. Спасибо @Ehsan Sajjad за помощь, я очень благодарен за это 🙂

5. Эй, @Ehsan, Ты можешь сказать мне, почему значение больше 99 работало нормально?