Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 2
Регистрация: 02.01.2014
Сообщений: 240
1

Обьясните функцию

10.07.2014, 18:44. Показов 2119. Ответов 40
Метки нет (Все метки)

вот эта функия
HTML5
1
<input type="submit" value="Добавить">
аккумулирует значения, которые я буду вводить в поле?
Или же надо использовать Java?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2014, 18:44
Ответы с готовыми решениями:

Обьясните че за программа...
Здраствуйте, помогите пожалуйсто, пришло тут письмо, я сунулся в html а там хакерская тема вроде...

get set обьясните пожалуйста
obj = { value: 0, get sin() { return Math.sin(this.value) } set sin(n) { ...

Обьясните пожалуйста небольшой код
Добрый день! Какой смысл от этого куска кода, обьясните пожалуйста ! ...

Условие ввода символов в строку(обьясните мне ктонибудь разницу Java и JavaScript)
Доброго времени суток! Столкнулся с проблемой. Нужно чтобы в строке были указаны только цифры с...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на JavaScript‌
Обучение в Java Mentor с оплатой после трудоустройства
40
10 / 10 / 13
Регистрация: 25.04.2012
Сообщений: 1,156
10.07.2014, 19:04 2
Mansu, это кнопка которая отправляет форму, изначально до этого нужно указать:

HTML5
1
2
3
4
5
<form action=" " method="post or get">
 
<!-- ну и какой нибуть текстовый инпут -->
 
<input type="text" name="название поля">
1
0 / 0 / 2
Регистрация: 02.01.2014
Сообщений: 240
11.07.2014, 17:39  [ТС] 3
А может кто-то подскажет как яваскриптом аккумулировать сумму чисел, которые я буду вводить в поле?

Добавлено через 7 минут
Вот я что-то написал, но не уверен что она пашет( Мне надо умножить два числа, а потом я должен нажать кнопку добавить и оно аккумулирует значение в какойто переменной, потом я ввожу сново два чила, они множаться, потом опять жму добавить и оно добавляет в мою переменную.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script language="JavaScript" type="text/javascript">
<!--
function sum(obj){
var q=obj.a.value;
var w=obj.b.value;
var s=q*w;
obj.res.value=s;
}
//-->
</script>
    <script language="JavaScript" type="text/javascript">
<!--
function use(obj){
var e=s;
u+=e;
obj.se.value=u;
}
//-->
</script>
Добавлено через 14 минут
Чучуть подкориктировал свои ошибки, вот:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script language="JavaScript" type="text/javascript">
<!--
function sum(obj){
var q=obj.a.value;
var w=obj.b.value;
var s=q*w;
obj.res.value=s;
}
//-->
</script>   
    <script language="JavaScript" type="text/javascript">
<!--
function use(obj){
var e=obj.res.value;
var u+=e; Можно ли так аккумулировать значения?
obj.se.value=u;
}
//-->
</script>
Добавлено через 38 минут
Насколько я понял += добавляет не 1+2=3, а 1+2=12?
0
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
13.07.2014, 11:08 4
Лучший ответ Сообщение было отмечено Mansu как решение

Решение

Mansu, он складывается 1 + 2 = 12 , потом что значение инпута имеет тип string. Это называется конкатенация строк. Нужно приводить данные к тип число, либо унарным плюсом ( + )

например:

Javascript
1
2
3
4
5
6
7
var aString = "10"; // строка
var aNumber = 10; // число
 
// терь если складывать, то приведение типа будет превращать число в строку, если первое складывается со вторым
var b = aString + aNumber // 1010
var c = +aString + aNumber // унарный плюс перед  aString делает его тип number
console.log(c) // 20
3
Developer
413 / 361 / 71
Регистрация: 27.02.2012
Сообщений: 1,329
Записей в блоге: 85
13.07.2014, 11:48 5
Thisman, замечательный пример!
0
Эксперт JSЭксперт HTML/CSS
2430 / 1108 / 310
Регистрация: 23.06.2011
Сообщений: 3,486
13.07.2014, 21:24 6
тот же вопрос был вчера от того же автора, темы лежат рядом
Почему + замещает, а не складывает?
0
0 / 0 / 2
Регистрация: 02.01.2014
Сообщений: 240
16.07.2014, 12:18  [ТС] 7
А почему не работает мой скрипт? Мне надо найти сумму произвидения двух чисел.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
function sum (s){
var q=obj.a.value;
var w=obj.b.value;
var s=q*w;}
function pam(p){
var p=s+c
}
var c;
if(typeof(с)=="undefined") {
  c=0}
else 
{sum(s);
pam(p);
c=p;}
obj.se.value=p;
}
Добавлено через 3 минуты
Там по-моему typeof не надо, но все равно не работает.(
0
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.07.2014, 12:25 8
Mansu, не стоит выкладывать кусок кода, и спрашивать почему не работает? Если только кусок кода не обособлен и не самостоятелен сам по себе
Вот что за переменная obj? Тут я не вижу ее инициализации
Цитата Сообщение от Mansu Посмотреть сообщение
var c;
if(typeof(с)=="undefined") {
* c=0}
Почему бы не написать вот так вот?
Javascript
1
var c = 0; // тогда не придется делать проверку
У тебя код начинается с открытия фигурных скобок, в общем непонятно что и где

Добавлено через 3 минуты
Mansu, почему у тебя функция sum совершает произведение? У тебя проблема с видимостью переменных еще скорее всего.
1
0 / 0 / 2
Регистрация: 02.01.2014
Сообщений: 240
16.07.2014, 12:30  [ТС] 9
Может проще эту задачу решить с помощью массива?

Добавлено через 1 минуту
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script language="JavaScript" type="text/javascript">
<!--
{
function sum(p){
var q=obj.a.value;
var w=obj.b.value;
var s=q*w*20;
var p=s+c;
}
var c;
if(c=="undefined") {
  c=0}
else 
{sum(p);
c=p;}
obj.se.value=p;
}
//-->
</script>
HTML5
1
<input type="number" name="se" id="sese" size="10">
0
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.07.2014, 12:30 10
Mansu, что именно должна делать задача? Складывать числа? Или складывать значения, которые ввел пользователь в текстовое поле?
1
0 / 0 / 2
Регистрация: 02.01.2014
Сообщений: 240
16.07.2014, 12:32  [ТС] 11
Пользователь должен вводить два числа, а программа вычисляет произвидение двох чисел, но при этом он может много раз вводить числа и мне надо указать сумму этих произвидений
0
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.07.2014, 12:32 12
Mansu, у тебя просто каша какая-то из кода. Переменная p объявлена внутри функции, но ты используешь ее, как глобальную. Далее у тебя всегда будет выполнятся первое условие, где ни какая функция не вызывается. Далее опять же откуда ты вообще берешь переменную obj, что это такое? Что за свойство obj.se?
1
0 / 0 / 2
Регистрация: 02.01.2014
Сообщений: 240
16.07.2014, 12:39  [ТС] 13
HTML5
1
2
3
4
5
6
<p>Введите число а</p>
        <input type="text" name="a" value=""> 
        <p>Введите число b</p>
        <input type="text" name="b" value="">
        <input type="button" name="button" value="Додати" onClick="use(forma1);"><br><br>
                <input type="number" name="se" id="sese" size="10">
Добавлено через 39 секунд
ой понял

Добавлено через 11 секунд
я раньше использовал obj для вывода

Добавлено через 30 секунд
А можете помочь написать этот код, я уже думаю может проще перейти к массивам?

Добавлено через 32 секунды
Просто я понимаю паскаль и си, а вот js не очень

Добавлено через 1 минуту
Значит, пользователь вводит 2 числа нажимает кнопку добавить и программа пишет ихние произвидение, потом он сново может ввести два числа и программа уже пишет сумму этих произвидений и т.д.

Добавлено через 2 минуты
Ладно, я сейчас пойду, веерком еще подумаю, буду очень благодарен если Вы поможете решить эту задачу. Просто я её решил через кучу функций и кучу полей, но оно выглядит не эстетично. Потому парюсь сейчас.
0
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.07.2014, 12:52 14
HTML5
1
2
3
4
5
6
7
<p>Введите число а</p>
<input type="text" name="a"> 
<p>Введите число b</p>
<input type="text" name="b">
 
<input type="button" name="button" value="Результат" onсlick="use(forma1);"><br><br>
<input type="number" name="result" id="result" size="10">
Javascript
1
2
3
4
5
6
7
8
9
var currentValue = 0; // будет хранить конечный результат, тип: number
function use(form){
   var f =form;
   var a = +f.a.value;
   var b = +f.b.value;
   var c = a * b;
   currentResult += c;
   f.result.value = currentResult;
}
Попробуй вот так вот
0
0 / 0 / 2
Регистрация: 02.01.2014
Сообщений: 240
16.07.2014, 16:16  [ТС] 15
Что-то не работает(

Добавлено через 3 минуты
0
Developer
413 / 361 / 71
Регистрация: 27.02.2012
Сообщений: 1,329
Записей в блоге: 85
16.07.2014, 18:06 16
Mansu, Thisman, А что вы хочели если вы передаёте в функцию фиг знает что ?

функция
Javascript
1
function use(form){
ожидает получить одну переменную - form...
вы туда в коде посылаете переменную form
HTML5
1
<input type="button" name="button" value="Результат" onсlick="use(forma1);"><br><br>
однако я нигде не видел что она у вас назначена...
следовательно приходит `undefined`

Теперь вопрос что вы хотели передать?
1. Объект внутри которого искать поля со значениями
2. Идентификатор объекта, что бы внутри функции уже искать элемент в DOM'e?

Добавлено через 2 минуты
P.S. ради бога... используйте пробелы и отступы что бы код был читаемым...
такой код не хочется даже смотреть...
0
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.07.2014, 18:15 17
Mansu, вот готовый код, в принципе html код тот же самый, выложу только JS

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   var form = document.forms["form1"];
    form.elements["button"].onclick = function () {
        use(form);
    };
 
    var currentValue = 0; // будет хранить конечный результат, тип: number
    function use(form){
        var f =form;
        var a = +f.elements["a"].value;
        var b = +f.elements["b"].value;
 
        currentValue += a * b;
        f.elements["result"].value = currentValue;
    }
1
Developer
413 / 361 / 71
Регистрация: 27.02.2012
Сообщений: 1,329
Записей в блоге: 85
16.07.2014, 18:16 18
вот вам для примера:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function abc( a, b, c ) 
{
  if ( a == b ) 
  {
    resp = c( c );
  }
  for ( var i = 0; i < 100; i++ )
  {
    alert( i );
  }
  return resp;
}
function c( c ) 
{
    var resp = false;
    switch ( c ) 
    {
      case 'audi' : 
        resp = ' audi ';
        break;
      case 'mazda' : 
        resp = ' mazda ';
        break;
      default :
        resp = ' opel ';
    }
    return resp;
}
Я не утверждаю что это ИДЕАЛЬНАЯ читаемость кода, но по крайней мере с таким подходом его удобней читать...
1
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
16.07.2014, 18:22 19
and_y87, ооой, это какой то C-шный стайл ставить скобки ниже оператора if, допустим

Я с самого начала привык писать вот так вот :
Javascript
1
2
3
4
5
6
7
8
if (true) {
    /* какой-то код*/
} else {
    /* че-нить еще */
}
// иногда позволяю себе и так написать, если в одну строчку
if(true) /* команда */
else /* команда */
Горизонтальные отступы я соблюдаю, иногда делаю вертикальные между допустим инициализациями переменных и непосредственно работой с ними. Но так, мне больше нравится группированость, чем вот такие переходы строк

P.S. Не думаю, что это так сильно убивает наглядность кода
0
Developer
413 / 361 / 71
Регистрация: 27.02.2012
Сообщений: 1,329
Записей в блоге: 85
16.07.2014, 18:24 20
Змени строку
Javascript
1
currentValue += a * b;
на:
Javascript
1
currentValue += parseInt( a ) * parseInt( b );
Добавлено через 1 минуту
Thisman, Эти переносы скобок создают приятный моему глазу зазор в коде, что бы не слипалось всё в if и т.п.

к тому же в IDE Очень неплохо видна линия от скобки к скобке

Добавлено через 31 секунду
Я относительно недавно в этом стиле пишу, на новом месте показал коллега, мне понравилось
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2014, 18:24

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

Обьясните новичку
Думаю для вас все просто будет. Только вот я немогу вообще понять Почему он не работает, когдя...

обьясните новичку по jquery
У меня есть два демо примера, один с jquery, другой без: &lt;script language=&quot;JavaScript&quot;&gt;...

Обьясните функцию
Обьяните пожалуйста кто сможет строчку где g = rand() / (float) RAND_MAX * groups; int g =...

Обьясните эту функцию
program zada4a_q; var n,m,c,v,d:integer; begin write('Hod mashiny za den= '); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.