Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Нужна помощь! (https://javascript.ru/forum/dom-window/23996-nuzhna-pomoshh.html)

Влад3265988 14.12.2011 14:31

Нужна помощь!
 
Здравствуйте!!!
<html>
<head>
<script language="javascript"><!--
function vvod(){
var a=Number(document.form1.aa.value);
var b=Number(document.form1.ab.value);
var c=Number(document.form1.ac.value);
var sum=Number(document.form1.asum.value);
sum=a+b+c;
}//-->
</script>
</head>
<body>
<form name=form1>
a?<input type="text" size=10 name=aa>
b?<input type="text" size=10 name=ab>
s?<input type="text" size=10 name=ab>
<input type="button" name=1 value=Пуск onClick=vvod() >
sum?<input type="text" size=10 name=asum>
</form>
</body>
</html>

В три эдита вбивается числа.При нажатие на кнопку ,надо чтобы сумму этих трёх чисел, вывел в четвёртый эдит.Поправьте пожалуйста код!)

ksa 14.12.2011 14:41

Цитата:

Сообщение от Влад3265988
При нажатие на кнопку ,надо чтобы сумму этих трёх чисел, вывел в четвёртый эдит

Как вариант...

<html>
<head>
<script language="javascript"><!--
function vvod(){
	var a=+document.getElementById('aa').value;
	var b=+document.getElementById('ab').value;
	var c=+document.getElementById('ac').value;
	var sum=a+b+c;
	document.getElementById('as').value=sum;
};
//-->
</script>
</head>
<body>
<form name=form1>
a?<input type="text" size=10 name=aa id='aa' />
b?<input type="text" size=10 name=ab id='ab' />
s?<input type="text" size=10 name=ab id='ac' />
<input type="button" name=1 value=Пуск onClick=vvod() >
sum?<input type="text" size=10 name=asum id='as' />
</form>
</body>
</html>

Arigato 15.12.2011 11:11

Влад3265988, я бы вам посоветовал атрибуты тегов брать в кавычки.

ksa, может лучше использовать parseFloat()?

trikadin 15.12.2011 13:50

Цитата:

Сообщение от Arigato
ksa, может лучше использовать parseFloat()?

Почему?

Nekromancer 15.12.2011 14:26

Лучше вообще ограничить ввод только цифрами. А так, всё равно NaN будет выскакивать.

trikadin 15.12.2011 15:21

Цитата:

Сообщение от Nekromancer
Лучше вообще ограничить ввод только цифрами.

Ну да.

Nekromancer 15.12.2011 15:22

trikadin,
Ну это больше ему сказано, чем тебе )

trikadin 15.12.2011 15:23

Цитата:

Сообщение от Nekromancer
Ну это больше ему сказано, чем тебе )

:)

Arigato 15.12.2011 16:25

Цитата:

Сообщение от trikadin (Сообщение 143136)
Почему?

А чем плюс лучше?

trikadin 15.12.2011 16:31

Цитата:

Сообщение от Arigato
А чем плюс лучше?

Короче.

А вот чем лучше parseFloat?

ksa 15.12.2011 16:54

Цитата:

Сообщение от trikadin
Короче.

Это как минимум... :yes:

Arigato 15.12.2011 17:32

Цитата:

Сообщение от trikadin (Сообщение 143175)
А вот чем лучше parseFloat?

Информативнее, чем какой-то плюсик.

Цитата:

Сообщение от ksa (Сообщение 143181)
Это как минимум... :yes:

Еще какие преимущества?

Nekromancer 15.12.2011 17:47

Arigato,
Ой, ну ради бога. Для кого информативнее, для того кто не знает?
Цитата:

Сообщение от Arigato
Еще какие преимущества?

А ещё быстрее. Ведь это обычное приведение типов.

melky 15.12.2011 19:08

если пользователь введёт "32.43a", я посмотрю, чем плюс лучше parseFloat.

PS для проверки того, является ли аргумент (в данном случае, строка) нормальным числовым представлением, есть функция isFinite :
isFinite("32"); // true
isFinite("32.5"); // true
isFinite("23k"); // false

trikadin 15.12.2011 19:17

Цитата:

Сообщение от melky
если пользователь введёт "32.43a", я посмотрю, чем плюс лучше parseFloat.

Уже обсуждалось, смотри выше:
Цитата:

Сообщение от Nekromancer
Лучше вообще ограничить ввод только цифрами.


Цитата:

Сообщение от melky
PS для проверки того, является ли аргумент (в данном случае, строка) нормальным числовым представлением, есть функция isFinite

Не вижу особого смысла в этой ф-ции, честно говоря.

Nekromancer 15.12.2011 19:23

trikadin,
поддерживаю, вполне достаточно isNaN.

melky 15.12.2011 19:40

Цитата:

Сообщение от Nekromancer (Сообщение 143240)
trikadin,
поддерживаю, вполне достаточно isNaN.

она обратная isFinite. вы хотите делать наоборот. ну что же, делайте.

trikadin 15.12.2011 19:45

Цитата:

Сообщение от melky
она обратная isFinite. вы хотите делать наоборот. ну что же, делайте.

Тебя session не взломал? Уж больно манера выражаться похожая.

melky 15.12.2011 20:04

Цитата:

Сообщение от trikadin (Сообщение 143251)
Тебя session не взломал? Уж больно манера выражаться похожая.

у него проц сгорит от брута моего пароля :)
просто есть такое понятие, как семантика.
как вы относитесь к yoda conditions ?
if (5 == myvariable) ....

от этого у меня тоже появляется чувство неправильного применения букавок в этих моментах.

trikadin 15.12.2011 20:05

Цитата:

Сообщение от melky
просто есть такое понятие, как семантика.
как вы относитесь к yoda conditions ?

Плохо отношусь. Но пример не в тему - почему это isFinite семантичнее, чем isNaN?

melky 15.12.2011 20:17

тупанул. если нажатая клавиша - нечисло, то мы отменяем действие по-умолчанию. isNaN, всё верно :)

Nekromancer 15.12.2011 20:22

Вполне себе логично в данном примере как раз использовать isNaN.
if(isNaN(String.fromCharCode(e.keyCode)) {
//отменили событие если не число
e.preventDefault();
return false;
}
//работаем дальше


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