Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Заменить OnClick другим


Автор: magrussia 26.3.2006, 21:25
ПОМОГИТЕ пжлст

Код

function calc11()                     
    {
      with (document.myform)
         {
           procent.value = (Number(stentotal.value)+Number(kovertotal.value)+Number(stoltotal.value)+Number(styltotal.value)+Number(veshalktotal.value)+Number(korzintotal.value)+Number(syktotal.value)+Number(inpt2.value))*2.5/100
           }
 }


Код

  <td><input type="text" name="procent" readonly     onClick="calc11()" value="" >




Надо чтобы по мере вычисления в столбце всех слогаемых **.value ( сверху вы это видите ) .. счеталась функция и выводилась в ячейку. Онклин, онЧенж не подходят. Так надо совершить действия чтобы в ячейку вывелся результат procent.value .

Онклик не удобно тем что если человек не кликнет на ячейку то не выведется результат. smile

Автор: Wolf1994 26.3.2006, 21:51
Поставить на поля с данными ончендж, через него обращаться к этой функции и изменять значение поля "procent".

Автор: magrussia 26.3.2006, 22:40
не понял smile

Автор: Aliance 26.3.2006, 23:25
onchange
onfocus

Подробнее - http://msdn.microsoft.com/library/default.asp!

Автор: magrussia 27.3.2006, 08:27
onFocus тоже самое, пока не кликнешь не выведется результат, а надо чтобы сразу выводился. smile smile плззз

Автор: Ciber SLasH 27.3.2006, 08:52
magrussia, так как ты хочешь не получится повесить на один элемент.
Как я понял он хочет следущее:
1) есть таблица, в которой стоят несколько полей ввода (INPUT, type="text")
2) при вводе значений в эти поля, автоматом должна вычисляться сумма всех этих полей и записываться в результирующее поле

Для того, чтобы всё это работало, нужно:
1.1) написать функцию, которая будет сама доставать значения с этих всех полей
1.2) вычислять сумму этих полей
1.3) записывать результат в результирующее поле
2) при вводе значений в каждое поле, по onKeyPress выполняем нужные действия, а в конце вызываем нашу функцию, написанную в п.1

Но имхо, вполне достаточно и кнопки, по нажатию на которую будет считаться сумма всех полей.

Автор: magrussia 27.3.2006, 09:07
Ciber SLasH, У меня есть цена*кол-во = итого, таких формул много, по каждой позиции, к примеру стул, стол и тд.
Мне надо чтобы после вычисления цена*кол-во вычисляла к примеру 2.5 от результата ( цена*колво) . Если введено множество полей( стул стол стенка), то 2.5% от суммы элементов.

Функция, которую я написал всё счетает. Но она работает не автоматически, а только при совершении действия. Onclick Onkeyup> onFocus, хочу узнать как мне это обойтию

Автор: Ciber SLasH 27.3.2006, 12:24
Цитата(magrussia @ 27.3.2006, 09:07 Найти цитируемый пост)
Функция, которую я написал всё счетает. Но она работает не автоматически, а только при совершении действия. Onclick Onkeyup> onFocus, хочу узнать как мне это обойтию

Я же объяснил, что либо делай кнопку, либо пиши новую функцию (какую, смотри предыдущий пост).

Автор: magrussia 27.3.2006, 12:46
Ciber SLasH, знал бы прикуп, жил бы в Сочи smile

Автор: Aliance 27.3.2006, 12:51
Может тогда onload ?

Автор: Ciber SLasH 27.3.2006, 12:59
magrussia, складывается мнение, что ты не пытаешься ничего сделать сам... подавай только готовенькое...
Что тут сложного, скажи, а...??
Ты не можешь написать функцию, которая достанет нужные элементы по их ID и сложет их value вместе?
Не можешь в этой же функции достать элемент по его ID, в котором должен быть результат, и вписать в его value вычисленноу сумму?
При вводе значений в каждое поле, по onKeyPress выполняем нужные действия, а в конце вызываем нашу функцию, этого тоже ты не можешь?

Стоит ли тогда браться за JavaScript, если ты не можешь сделать элементарные вещи? Здесь вообще нет ничего сложного, для этой задачи хватит даже уровня "новичёк", надо только самому пытаться разобраться.

Скачай справочник по JS у меня в подписе и изучай свойства элементов, посмотри чужие скрипты на этом форуме, поищи ответы на свои вопросы на этом форуме и в Гугле... smile

Автор: 12345c 27.3.2006, 13:09
Где-то рядом эти события обсуждали не 1 раз. Чтобы считалось по нажатиям, используйте onkeyup . Но, чтобы при этом не считалось с ошибками, делайте задержку на 0.7-1 с (это не обсуждалось недавно). По принципу:

ww=0;
...
onkeyup - clearTimeout(ww);ww=setTimeout(...);

Автор: GIK 27.3.2006, 13:11
Цитата

Скачай справочник по JS у меня в подписе и изучай свойства элементов, посмотри чужие скрипты на этом форуме, поищи ответы на свои вопросы на этом форуме и в Гугле...

Или так спроси что непонятно smile Блин что я за Ciber SLasH все повторяю smile

Автор: magrussia 27.3.2006, 13:27
smile ругайте меня , ругайте. Мне бы сделать то что я хочу и про JS можно забыть на время, но я буду стараться) и учусь я , просто слишком много инфы smile

Автор: GIK 27.3.2006, 13:49
Цитата

ругайте меня , ругайте. Мне бы сделать то что я хочу и про JS можно забыть на время, но я буду стараться) и учусь я , просто слишком много инфы

А ты попорядку (постепенно) учись smile , а если хочеш чтобы все сразу, то так не получится.

Автор: Aliance 27.3.2006, 23:15
Вот поэтому и ругаем. Если б ты не забыл бы, а дальше изучал - а сейчас время поджимает - может и помогли б. А раз тебе только это и больше ничего (а дальше вдруг опять и опять...) - то уж извеняй.

Автор: magrussia 28.3.2006, 12:04
По поводу функции,
Код



function summastolbcov()
 {
    with(document.myform)
       {
       total.value = Number(stentotal.value)+Number(kovertotal.value)+Number(stoltotal.value)+Number(styltotal.value)+Number(veshalktotal.value)+Number(korzintotal.value)+Number(syktotal.value)+Number(i1.value)+Number(inpt.value)+Number(inpt2.value)+Number(procent.value);
         }
}


Есть эта функция уже, и надо ли разве создавать еще одну функцию .....

И я не понимаю как сделать чтобы сразу счеталась эта функция по мере ввода слогаемых smile , Ciber SlasH красиво написал smile

Автор: Wolf1994 28.3.2006, 15:56
Дайте форму целиком и, возможно, я смогу помочь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)