Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 6

innerHtml и форма

12.03.2013, 16:13. Показов 2473. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
есть такая форма:
HTML5
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<html>
    <head>
        <script src="calculation.js" type="text/javascript"></script>
    </head>
    <body>
        <style>
            h3 {
                color:red;
            }
            a {
                color:red;
            }
            .leftBlock {
                float:left;
            }
            .rightBlock {
                float:right;
                width:450px;
                height:450px;
                border:1px solid black;
            }
            .rightBlock h2 {
                color:red;
                text-align:center;
            }
        </style>
        <div class="leftBlock">
            <h2>Введите параметры заказа</h2>
                <form  method="post">
                    <label>Формат</label>
                    <select name="format" id="format">
                        <option value="2">A1</option>
                        <option value="1.5">A2</option>
                        <option value="1" selected>A3</option>
                        <option value="0.5" >A4</option>
                    </select>
                    <br/>
                    <label>Тираж</label>
                    <input type="text" name="tiraz" value="1000" onkeyup="this.value = this.value.replace (/\D+/, '')" id="tiraz"/>
                    <br/>
                    <label>Тип крепления</label>
                    <select name="kreplenije" id="kreplenije">
                        <option value="5">Скоба</option>
                        <option value="7">Биндер</option>
                        <option value="12">Биндер+нитка</option>
                    </select>
                    <br/>
                    <h3>Обложка</h3>
                    <label>
                        Без обложки
                        <input type="checkbox" name="bezOblozki" id="bezOblozki" />
                    </label>
                    <br/>
                    <label>Цветность</label>
                    <select name="colors" id="colors">
                        <option value="10">1+1</option>
                        <option value="15">2+2</option>
                        <option value="20">4+1</option>
                    </select>
                    <br/>
                    <label>Тип бумаги</label>
                    <select name="paper" id="paper">
                        <option value="10">Тип бумаги1</option>
                        <option value="15">Тип бумаги2</option>
                        <option value="20">Тип бумаги3</option>
                    </select>
                    <br/>
                    <label>Дополнительная обработка</label>
                    <select name="dopObrobka" id="dopObrobka">
                        <option value="1">нет</option>
                        <option value="20">Защитный лак</option>
                    </select>
                    <br/>
                    <label>
                        <input type="checkbox" name="dveStoronu" id="dveStoronu" value="20"/>
                        Двухсторонняя
                    </label>
                    <br/>
                    <label>
                        Доп. УФ-лак выборочный
                        <input type="checkbox" name="dopLak" id="dopLak" value="25"/>
                    </label>
                    <br/>
                    <h3>Блок 1</h3>
                    <label>Цветность</label>
                    <select name="Colors2" id="Colors2">
                        <option value="10">1+1</option>
                        <option value="15">2+2</option>
                        <option value="20">4+1</option>
                        <option value="25">4+4</option>
                    </select>
                    <br/>
                    <label>Страничность издания</label>
                    <input type="text" value="16" onkeyup="this.value = this.value.replace (/\D+/, '')" id="stranichnost"/>
                    <br/>
                    <label>Тип бумаги</label>
                    <select name="paper2" id="paper2">
                        <option value="10">Тип1</option>
                        <option value="15">Тип2</option>
                        <option value="20">Тип3</option>
                        <option value="20">Тип4</option>
                    </select>
                    <br/>
                    <label>Дополнительная обработка</label>
                    <select name="dopObrobka2" id="dopObrobka2">
                        <option value="1">нет</option>
                        <option value="20">Защитный лак</option>
                    </select>
                    <br/>
                    <label>
                        <input type="checkbox" name="dveStoronu2" id="dveStoronu2" value="20"/>
                        Двухсторонняя
                    </label>
                    <br/>
                    <br/>
                    <a href="" id="addBlock">Добавить блок</a>
                    <br/>
                    <br/>
                    <label>Валюта расчета</label>
                    <select name="valyta" id="valyta">
                        <option value="1">гривна</option>
                        <option value="2">доллар</option>
                        <option value="3">рубли</option>
                        <option value="4">евро</option>
                    </select>
                    <br/>
                    <label>Примечание</label>
                    <textarea name="description" id="description"></textarea>
                    <br/>
                    <button onclick="calc()" id="buttonGood">Расчитать стоимость заказа</button>
            </form>
        </div>
        <div class="rightBlock">
            <h2>Ваш заказ</h2>
            <p style="float:left">Стоимость:   </p><div id="result"></div>
        </div>
    </body>
</html>
и такой скрипт "калькулятора" :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
function calc() {
    var format = document.getElementById("format");
    var tiraz = document.getElementById("tiraz");
    var kreplenije = document.getElementById("kreplenije");
    var bezOblozki = document.getElementById("bezOblozki");
    var colors = document.getElementById("colors");
    var paper = document.getElementById("paper");
    var dopObrobka = document.getElementById("dopObrobka");
    var dveStoronu = document.getElementById("dveStoronu");
    var dopLak = document.getElementById("dopLak");
    var Colors2 = document.getElementById("Colors2");
    var stranichnost = document.getElementById("stranichnost");
    var paper2 = document.getElementById("paper2");
    var dopObrobka2 = document.getElementById("dopObrobka2");
    var dveStoronu2 = document.getElementById("dveStoronu2");
    var valyta = document.getElementById("valyta");
    var price = 0;
    var result = document.getElementById("result");
 
    price = parseFloat(format.options[format.selectedIndex].value) * parseInt(tiraz.value);
    price += parseInt(kreplenije.options[kreplenije.selectedIndex].value);
    if (!bezOblozki.checked)
        {
            price += parseInt(colors.options[colors.selectedIndex].value);
            price += parseInt(paper.options[paper.selectedIndex].value);
            if (!parseInt(dopObrobka.options[dopObrobka.selectedIndex].value) == 1) 
            {
                price += parseInt(dopObrobka.options[dopObrobka.selectedIndex].value);
            }
            if (dveStoronu.checked)
            {
                price += parseInt(dveStoronu.value);
            }
            if (dopLak.checked)
            {
                price += parseInt(dopLak.value);
            }
            
        }
    price += parseInt(Colors2.options[Colors2.selectedIndex].value);
    price += parseInt(stranichnost.value);
    price += parseInt(paper2.options[paper2.selectedIndex].value);
    if (!parseInt(dopObrobka2.options[dopObrobka2.selectedIndex].value) == 1) 
    {
        price += parseInt(dopObrobka2.options[dopObrobka2.selectedIndex].value);
    }
    if (dveStoronu2.checked)
    {
        price += parseInt(dveStoronu2.value);
    }
    if (parseInt(valyta.options[valyta.selectedIndex].value) == 2 )
    {
        price *= 8;
    }
    else if (parseInt(valyta.options[valyta.selectedIndex].value) == 3 )
    {
        price = price / 4;
    }
    else if (parseInt(valyta.options[valyta.selectedIndex].value) == 4 )
    {
        price *= 11;
    }
    var desc = document.getElementById("description").value;
    result.innerHTML = "<p>" + price + "</p>" + "\n" + desc;
}
После подсчета всех данных их нужно вывести в блоке
HTML5
1
2
3
4
<div class="rightBlock">
            <h2>Ваш заказ</h2>
            <p style="float:left">Стоимость:   </p><div id="result"></div>
        </div>
За вывод использую :
JavaScript
1
result.innerHTML = "<p>" + price + "</p>" + "\n" + desc;
но при нажатии на кнопку форма обновляет страницу....
и результат появляется и сразу пропадает...
Как это убрать ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2013, 16:13
Ответы с готовыми решениями:

innerHTML
Может я чего не понимаю... но почему? var new_input=document.createElement('tr'); new_input.innerHTML=&quot;&lt;td...

InnerHTML
есть меню &lt;li&gt;&lt;a href=&quot;Viev.php&quot; class= &quot;tab1&quot;&gt;Меню 1&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;Viev.php&quot; class= &quot;tab2&quot;&gt;Меню 2&lt;/a&gt;&lt;/li&gt; ...

InnerHTML
Помогите исправить код пожалуйста. Не могу найти ошибку все нормально только вивод кривой мигает почему-то... &lt;HTML&gt; ...

6
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.03.2013, 16:16
Цитата Сообщение от RampageTechn Посмотреть сообщение
HTML5
29
<form  method="post">
onsubmit="return false"

Добавлено через 1 минуту
Вообще зачем нужна форма, если отправка и обработка на сервере не предполагается? Зачем дверь, которая не открывается? Зачем окно, забитое листом железа?
1
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 6
12.03.2013, 16:18  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Вообще зачем нужна форма, если отправка и обработка на сервере не предполагается? Зачем дверь, которая не открывается? Зачем окно, забитое листом железа?
форма нужна будет для обработки php кодом =)
Спасибо большое
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.03.2013, 16:27
Цитата Сообщение от RampageTechn Посмотреть сообщение
форма нужна будет для обработки php кодом
Ага, только отпрвку формы мы только что запретили на корню.
Что и каким образом будет отправляться на сервер? Это будет всего лишь альтернативная реализация тех же самых вычислений или это будет совершенно другое действие (например, отправка заказа на мыло владельцу)?
0
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 6
12.03.2013, 16:41  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
это будет совершенно другое действие (например, отправка заказа на мыло владельцу)?
вот
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.03.2013, 16:45
Тогда надо либо эту подосланную кнопку [Расчитать стоимость заказа] вынести за пределы формы (тогда будет отдельная кнопка [Отправить]), либо другими путями извращаться (тогда отправка будет выполняться скриптом form.submit() или AJAX).
0
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 6
12.03.2013, 16:49  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Тогда надо либо эту подосланную кнопку [Расчитать стоимость заказа] вынести за пределы формы (тогда будет отдельная кнопка [Отправить])
этот вариант подходит =) спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.03.2013, 16:49
Помогаю со студенческими работами здесь

InnerHTML
Всем здравтсвуйте. Когда-то давно начинал писать на Javascript. Сейчас все подзабыл. Вообщем нужна ваша помощь. Задача такая. Допустим...

InnerHTML
Господа, возможно вопрос и нубский, но сам решение пока найти не могу. В общем есть HTML код, в котором только div c ID. Я скриптом создаю...

innerHTML
Простите, другого названия не придумал. &lt;table id=&quot;element&quot; border=&quot;1&quot; width=&quot;500px&quot;&gt;&lt;/table&gt; &lt;input type=&quot;text&quot;...

Не работает innerHTML
Не выводит сообщение, то что написано в переменной i1, через document.write все пашет, заранее спасибо. &lt;html&gt; &lt;script&gt; ...

InnerHTML в цикле
Здравствуйте, существует некий массив ses, хотелось бы в тексте менять слова текста на слова из этого массива. Я знаю что следующая запись...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru