Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Калькулятор. Не работают операции (https://javascript.ru/forum/jquery/15760-kalkulyator-ne-rabotayut-operacii.html)

alexvb 12.03.2011 10:51

Калькулятор. Не работают операции
 
Господа, помогите разобраться. Делаю калькулятор, не получаются операции с переменными, и что самое странное в alert выводится правильно посчитанная цифра ,а на экран dav2 не выводиться. В чем дело? Заранее благодарен!

Привожу листинг:
<script>
$(document).ready(function() {
$("#davl").keyup(function () {
var dav1 = $("#davl").val();

var dav2 = dav1*6;
alert (dav2);
$("#itog1").text(dav1);
$("#itog2").text(dav2);
});
});
</script>

Форма:
<form>
<table align="center" width="280px" border="1">
<tr>
<td align="center" colspan="2">Введите: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="davl" size="7" id="davl">
&nbsp;
</form>
</td>
</tr>
<tr>
<td align="left" width="50%"><span id="itog1"></span></td>
<td align="left" width="50%"><span id="itog2"></span></td>
</tr>
</table>

walik 12.03.2011 11:16

У меня все работает нормально

alexvb 12.03.2011 11:19

и переменная dav2 выводится в таблицу после операции умножения? У меня она только в аллерте правильно считает. А если умножение заменить на сложение, тогда в dav2 выводит как сложение строковых переменных.

walik 12.03.2011 11:22

Да. И в alert'е и в таблице

рони 12.03.2011 11:26

alexvb,
Закрывающий тег формы стоит не на месте ... и чтобы превратить строку в число добавьте плюс перед строкой
var dav2 = +dav1+6;

alexvb 12.03.2011 11:38

Ничего не помагает. В аллерте считает, а dav2 не выводит в таблицу. Я в 5-ти браузерах проверял. Привожу весь код.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Перевод единиц давления</title>
<script type="text/javascript" src="jQuery.js"></script>
</head>

<body>

<script>
$(document).ready(function() {
$("#davl").keyup(function () {
var dav1 = $("#davl").val();

var dav2 = +dav1+6;
alert (dav2);
$("#itog1").text(dav1);
$("#itog2").text(dav2);
});
});
</script>

Форма:
<form>
<table align="center" width="280px" border="1">
<tr>
<td align="center" colspan="2">Введите: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="davl" size="7" id="davl">
&nbsp;

</td>
</tr>
<tr>
<td align="left" width="50%"><span id="itog1"></span></td>
<td align="left" width="50%"><span id="itog2"></span></td>
</tr>
</table>

</form>

</body>
</html>

alexvb 12.03.2011 11:59

а если строку
var dav2 = +dav1+6;
заменить на
var dav2 = +dav1*6;
то тоже в аллерте считает, а dav2 в таблицу не выводит. Вторые сутки пошли мытарства. Господа Гуру, выручайте!

walik 12.03.2011 12:14

<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
	$("#davl").keyup(function () {
		var dav1 = $("#davl").val();
		var	dav2 = +dav1*6;
		alert (dav2);
		$("#itog1").text(dav1);
		$("#itog2").text(dav2);
	});
});
</script>
</head>
<body>
<table align="center" width="280px" border="1">
<tr>
<td align="center" colspan="2">
<form>
	Введите: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="davl" size="7" id="davl">
</form>
</td>
</tr>
<tr>
<td align="left" width="50%"><span id="itog1"></span></td>
<td align="left" width="50%"><span id="itog2"></span></td>
</tr>
</table>
</body>
</html>

Все же работает.

alexvb 12.03.2011 12:26

walik спасибо Вам огромное! Действительно все работает. Вроде нашел в чем загвоздка: у меня на локалке стоит jQuery 1.1.2 - New Wave Javascript, заменил на вашу строчку и все заработало. Однако все же странно, нежели так версии разняться? Еще раз огромное СПАСИБО!!!


Часовой пояс GMT +3, время: 02:47.