Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.02.2014, 13:47
Новичок на форуме
Отправить личное сообщение для AlexFoxx Посмотреть профиль Найти все сообщения от AlexFoxx
 
Регистрация: 17.02.2014
Сообщений: 8

Простой калькулятор
Подскажите, пожалуйста, как должен выглядеть и быть написан простейший калькулятор:
Я хочу заказать  
<select name="services">
<option value=""></option>
<option value="copywriting">Копирайтинг и SEO-копирайтинг</option>
<option value="selltext">Продающий текст</option>
<option value="hometext">Текст на главную страницу сайта</option>
// и т.д.
</select>
<br>
Мне нужен текст объемом
<input type="text" name="vol" size="3" value="" placeholder="3500"> знаков (без пробелов)
<br>

который перемножает между собой выбранный select и объем и выводит 'result' в текстовую графу.

Да, "option value=" нужно оставить в текстовом виде, т.к. форма отправляется на почту, а некоторые услуги стоят одинаково.

В идеале, если объем больше N1, то вся сумма должна умножаться на скидку M1, а если больше N2, то умножаем на скидку M2

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 17.02.2014, 14:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

AlexFoxx,
а сами капельку ну чуть чуть ?
Ответить с цитированием
  #3 (permalink)  
Старый 17.02.2014, 14:17
Новичок на форуме
Отправить личное сообщение для AlexFoxx Посмотреть профиль Найти все сообщения от AlexFoxx
 
Регистрация: 17.02.2014
Сообщений: 8

Я чего не пойму...если я ID припишу всему селектору, то значения для расчетов будут браться из value (где мне надо чтобы был текст)?
Остальное тащем-та просто.

В общем, как мне правильно присвоить числовое (цену) значение опциям селектора?
Ответить с цитированием
  #4 (permalink)  
Старый 17.02.2014, 15:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

AlexFoxx,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
   Я хочу заказать
<select name="services"  >
<option value=""></option>
<option value="copywriting">Копирайтинг и SEO-копирайтинг</option>
<option value="selltext">Продающий текст</option>
<option value="hometext">Текст на главную страницу сайта</option>
// и т.д.
</select>
<br>
Мне нужен текст объемом
<input type="text" name="vol" size="3" value="" placeholder="3500"> знаков (без пробелов)
<br>
<script>
   var ser = document.querySelector('[name="services"]'),
       vol = document.querySelector('[name="vol"]'),
       sum = {
           "copywriting": 100,
           "selltext": 200,
           "hometext": 500
       };
   ser.onchange = vol.oninput = function () {
       alert((+vol.value || 0) * (sum[ser.value] || 0))
   }
</script>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 17.02.2014, 17:40
Новичок на форуме
Отправить личное сообщение для AlexFoxx Посмотреть профиль Найти все сообщения от AlexFoxx
 
Регистрация: 17.02.2014
Сообщений: 8

Большое спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 18.02.2014, 06:11
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

<option value="copywriting" data-price="100500">Копирайтинг и SEO-копирайтинг</option>


// canonical js

try{
  alert('Yo have to pay: '+getElementById('copywriting').dataset.price * document.getElementsByName('vol')[0].value)+'bucks';
}catch(e){
  alert('something went wrong');
}
Ответить с цитированием
  #7 (permalink)  
Старый 18.02.2014, 06:16
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Я лишь одного не понял - у сеошников и копирайтеров не принято публиковать прайсы?

Другими словами если юзер видит цену, то и скрипт ее увидит там же, или в лучшем месте откуда юзеру рендерится.

А если скрипт не видит цену, то юзер что видит?
Ответить с цитированием
  #8 (permalink)  
Старый 18.02.2014, 09:45
Интересующийся
Отправить личное сообщение для preproger Посмотреть профиль Найти все сообщения от preproger
 
Регистрация: 17.02.2014
Сообщений: 10

Сообщение от kostyanet Посмотреть сообщение
Я лишь одного не понял - у сеошников и копирайтеров не принято публиковать прайсы?
Другими словами если юзер видит цену, то и скрипт ее увидит там же, или в лучшем месте откуда юзеру рендерится.
А если скрипт не видит цену, то юзер что видит?
На копирайт вроде указывают всегда точную цену за т.з. или за "текст".
Ответить с цитированием
  #9 (permalink)  
Старый 18.02.2014, 14:22
Новичок на форуме
Отправить личное сообщение для AlexFoxx Посмотреть профиль Найти все сообщения от AlexFoxx
 
Регистрация: 17.02.2014
Сообщений: 8

Есть у нас и прайсы и все цены видит юзер...другое дело, что копирайтеры вроде как тексты пишут, а не коды Тем не менее, задача оказалась решена - все же у нас простенький wordpress-сайт, а не портал с кучей услуг. Получился конечно былокод и при изменении цен надо будет делать двойную работу, но пока пусть так будет...
Подскажите мне, плз, еще один простой момент и я буду бесконечно счастлив.
Быдлокод:
<script>
   var ser = document.querySelector('[name="services"]'),
       vol = document.querySelector('[name="vol"]'),
       sum = {
           "copywriting": 350,
           "selltext": 600,
           "hometext": 550,
	   "abouttext": 500,
	   "formedia": 450,
	   "pressrel": 400,
	   "goods": 200,
	   "rewriting": 200,
	   "commercial": 500,
	   "comments": 80,
	   "context": 100,
	   "blogs": 350,
	   "mailing": 350,
	   "news": 350,
	   "present": 750,
	   "poetry": 200,
	   "prose": 250,
	   "editing": 150,
	   "correction": 100
	     };
   ser.onchange = vol.oninput = function calc () {
   var price = 0;
       price = ((+vol.value || 0) * (sum[ser.value] || 0)/1000);
result.innerHTML = price;
   }
</script>


Как правильно написать тут же на яве про скидки, типа

if $vol > 49999 { $price = $price * 0.9; }
elseif $vol > 99999 { $price = $price * 0.85; }
else ...ну обычная $price

как все это правильно вкрутить в тот быдлокод?
Ответить с цитированием
  #10 (permalink)  
Старый 18.02.2014, 14:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

AlexFoxx,

var ser = document.querySelector('[name="services"]'),
       vol = document.querySelector('[name="vol"]'),
       sum = {
           "copywriting": 350,
           "selltext": 600,
           "hometext": 550,
	   "abouttext": 500,
	   "formedia": 450,
	   "pressrel": 400,
	   "goods": 200,
	   "rewriting": 200,
	   "commercial": 500,
	   "comments": 80,
	   "context": 100,
	   "blogs": 350,
	   "mailing": 350,
	   "news": 350,
	   "present": 750,
	   "poetry": 200,
	   "prose": 250,
	   "editing": 150,
	   "correction": 100
	     };
   ser.onchange = vol.oninput = function calc () {
   var price = 0, text = +vol.value || 0;
       price = (text * (sum[ser.value] || 0)/1000);
       if (text > 99999) price *= 0.85;
       else if (text > 49999) price *= 0.9;
result.innerHTML = price;
   }

Последний раз редактировалось рони, 18.02.2014 в 15:33.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
простой калькулятор kekc91 Общие вопросы Javascript 12 28.12.2016 01:45
JS калькулятор value c нескольких групп radio Round Events/DOM/Window 7 30.10.2013 21:29
Калькулятор вылют poligon Общие вопросы Javascript 1 27.07.2013 23:37
Очень простой калькулятор NeoMurderer Элементы интерфейса 3 30.06.2011 21:06
Сделать калькулятор на сайт. asderru Работа 1 22.07.2010 13:46