Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Ругаются IE (до 9 версии) (https://javascript.ru/forum/jquery/29620-rugayutsya-ie-do-9-versii.html)

ultrbi4 05.07.2012 10:51

Ругаются IE (до 9 версии)
 
$('.calc').keyup(function(){
		pa1 = $("#long").val();
		pa2 = $("#width").val();
		pa3 = $("#height").val();
		
		sval = pa1 * pa2; // Площадь
		ppa = 2 * pa1 + 2 * pa2; // Периметр
		ssten = ((ppa * pa3) * 110) / 100;// Площадь стен
		skrovlya = (sval * 120) / 100; // Площадь кровли
		sall = ssten + skrovlya; //  Общая площадь
		hfloor = 100; //  Толщина пола

			discountval = discount(sval) // Скидка
			function discount(sval) {
				   if (sval < 5000) {return 0};
				   if (sval < 10000) {return 0.05};
				   if (sval < 50000) {return 0.1};
				   if (sval < 80000) {return 0.15};
				   return 0.2;
				}
			skidka = discountval;
			shebenNum = sval * 0.05;


на последнюю строку "Объект не поддерживает это свойство или метод "

Deff 05.07.2012 11:09

добавьте
Цитата:

sval = pa1 * pa2; // Площадь
alert( sval);
И есть ли конечные закрывающиеся скобки для $('.calc').keyup(function(){
*Пример функции - не законченный

ultrbi4 05.07.2012 11:18

alert выдает число - результат умножения pa1 на pa2
во всех остальных браузерах все отлично считается

Deff 05.07.2012 11:21

ultrbi4,
Выложите ссылку или полную функцию - потестим

ultrbi4 05.07.2012 11:24

Вложений: 1
Держите

ultrbi4 05.07.2012 11:28

Я начинающий, поэтому наверно логика в скрипте слишком прямолинейна, если не сложно прошу указать на мои недочеты

Deff 05.07.2012 12:31

Ошибка в ином, этот кусок работает в ИЕ

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<script type="text/javascript">
		pa1 = 123123;
		pa2 = 123123;
		pa3 = 123123;
		
		sval = pa1 * pa2; // Площадь
alert(sval)
		ppa = 2 * pa1 + 2 * pa2; // Периметр
		ssten = ((ppa * pa3) * 110) / 100;// Площадь стен
		skrovlya = (sval * 120) / 100; // Площадь кровли
		sall = ssten + skrovlya; //  Общая площадь
		hfloor = 100; //  Толщина пола

			discountval = discount(sval) // Скидка
			function discount(sval) {
				   if (sval < 5000) {return 0};
				   if (sval < 10000) {return 0.05};
				   if (sval < 50000) {return 0.1};
				   if (sval < 80000) {return 0.15};
				   return 0.2;
				}
			skidka = discountval;
			shebenNum = sval * 0.05;
			shebenPrice = 1350;
</script>
</body></html>

Deff 05.07.2012 12:34

Думаю - что воть эти установки не Гуд
pa1 = $("#long").val();
pa2 = $("#width").val();
pa3 = $("#height").val();
sval = pa1 * pa2; // Площадь
По большому счету pa1 и pa2 - строковые переменные - а не цифры
Ие скорее всего множит '123123' * '123123'

ultrbi4 05.07.2012 12:54

пишу вот так
var shebenNum = sval * 0.05;

ошибка переходит на след строку, может ие не может на ходу создать переменную?

ultrbi4 05.07.2012 12:56

добавил везде var, в IE начал нормально работать

Deff 05.07.2012 12:57

ultrbi4,
pa1 = parseInt($("#long").val());
pa2 = parseInt($("#width").val());
pa3 = parseInt($("#height").val());
И тут нун еще проверку на isNaN

devote 05.07.2012 13:02

Цитата:

Сообщение от Deff
И тут нун еще проверку на isNaN

для этого достаточно сделать:
var pa1 = parseFloat( $("#long").val() ) || 0;

ultrbi4 05.07.2012 13:03

а там сначала проверка идет на то чтобы пользователь мог вбить только числа, поэтому там же NaN не должно быть, или не прав?

devote 05.07.2012 13:06

Цитата:

Сообщение от ultrbi4
поэтому там же NaN не должно быть, или не прав?

ну вбить можно как угодно.. например вставить слово мышкой? не?

Deff 05.07.2012 13:19

Цитата:

Сообщение от devote
для этого достаточно сделать:

cпс - раньше делал сложнее
Цитата:

Сообщение от devote
ну вбить можно как угодно.. например вставить слово мышкой? не?

Самая типовая ошибка, вставка запятой

ultrbi4 05.07.2012 13:50

Спасибо большое, за помощь


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