#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 работало нормально?