15.02.2012, 08:34
|
Новичок на форуме
|
|
Регистрация: 15.02.2012
Сообщений: 8
|
|
Помогите с обработкой формы
Всем привет. Прошу помощи в обработке формы, никак не могу понять что нужно скрипту, чтобы хотя бы затенить вторую строку.
<body onLoad="Svedenie()">
<form name="Ceny" action="" method="post" style="margin-left:auto; margin-right:auto">
<table width="390" style="border: 2px solid #CCC; background:#3e3e3e">
<tr>
<td class="text" width="190px">СВЕДЕНИЕ:</td>
<td >
<select onchange="CSvedenie()" name="Svedenie" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="Yes" selected="selected">Да</option>
<option value="No">Нет</option>
</select>
</td>
</tr>
<tr>
<td class="text">Количество дорожек wav:</td>
<td>
<select onchange="CKolvoDorogi()" name="KolvoDorogi" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="1" selected="selected">до 10-ти шт.</option>
<option value="2">от 10 до 13 шт.</option>
<option value="3">от 13 до 16 шт.</option>
<option value="4">от 16 до 19 шт.</option>
<option value="5">от 19 до 21 шт.</option>
<option value="6">от 21 до 24 шт.</option>
<option value="7">от 24 до 27 шт.</option>
<option value="8">от 27 до 30 шт.</option>
</select></td>
</tr>
<tr>
<td class="text">МАСТЕРИНГ:</td>
<td>
<input onchange="CMastering()" name="Mastering" type="radio" value="Yes" checked>Да
<input onchange="CMastering()" name="Mastering" type="radio" value="No" >Нет
</td>
</tr>
<tr>
<td class="text">Количество минут:</td>
<td><select onchange="MasteringChange()" name="MasteringChange" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="1" selected="selected">До 5 минут</option>
<option value="2">От 5 до 10 минут</option>
<option value="3">От 10 до 15 минут</option>
<option value="4">От 15 до 20 минут</option>
<option value="4">От 20 до 25 минут</option>
<option value="4">От 25 до 30 минут</option>
</select></td>
</tr>
<tr >
<th class="stylered" align="left">ИТОГО (руб.):</th>
<td><input name="TarifTotal" type="text" class="styleredbig" style="width: 200px; color:#9a9a9a; background:#3e3e3e;" />
<input type="hidden" name="txtorder" />
</td>
</tr>
</table>
</form>
<script type="text/javascript" language="JavaScript">
function Svedenie() {
var SvedenieValue = document.Ceny.Svedenie.value
if( SvedenieValue == 'No' )
{document.Ceny.KolvoDorogi.disabled = false;}
else {
if( SvedenieValue == 'Yes' )
{document.Ceny.KolvoDorogi.disabled = true;}}
}
</script>
</body>
Последний раз редактировалось k3b3, 15.02.2012 в 10:39.
|
|
15.02.2012, 09:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Судя по вашему сообщению, вы ну совсем не знаете javascript.
Освойте основы языка и вопрос отпадет сам.
|
|
15.02.2012, 10:34
|
Новичок на форуме
|
|
Регистрация: 15.02.2012
Сообщений: 8
|
|
исправил, надеюсь правильно, хотя бы подскажите в чем ошибка
|
|
15.02.2012, 17:46
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
k3b3,
Определитесь с названием функции строки 1 , 8 и в скрипте 2 ,
исправьте синтаксис в скрипте
if () {
}
else if() {
}
|
|
16.02.2012, 15:17
|
Новичок на форуме
|
|
Регистрация: 15.02.2012
Сообщений: 8
|
|
О да, всем спасибо, я дошел %)) Оказывается рулит onchange %))
|
|
17.02.2012, 11:55
|
Новичок на форуме
|
|
Регистрация: 15.02.2012
Сообщений: 8
|
|
Возникла другая проблема.
Функции написал, как сделать так, чтобы в последней строке формы вылезала строка с ценой при загрузке страницы и дальнейшем изменении полей. Подскажите где копать.
<body>
<form name="Ceny" action="" method="post" style="margin-left:auto; margin-right:auto">
<table style="border: 2px solid #CCC; background:#3e3e3e">
<tr>
<td class="text">СВЕДЕНИЕ:</td>
<td >
<select onchange="CSvedenie()" name="Svedenie" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="Yes" >Да</option>
<option value="No" selected="selected">Нет</option>
</select>
</td>
</tr>
<tr>
<td class="text">Количество дорожек wav:</td>
<td>
<select onchange="CKolvoDorogi()" name="KolvoDorogi" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="1" selected="selected">до 10-ти шт.</option>
<option value="2">от 10 до 13 шт.</option>
<option value="3">от 13 до 16 шт.</option>
<option value="4">от 16 до 19 шт.</option>
<option value="5">от 19 до 22 шт.</option>
<option value="6">от 22 до 25 шт.</option>
<option value="7">от 25 до 28 шт.</option>
<option value="8">от 28 до 31 шт.</option>
</select></td>
</tr>
<tr>
<td class="text">МАСТЕРИНГ:</td>
<td>
<select onchange="CMastering()" name="Mastering" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="Yes" >Да</option>
<option value="No" selected="selected">Нет</option>
</select>
</td>
</tr>
<tr>
<td class="text">Количество минут:</td>
<td><select onchange="CMasteringChange()" name="MasteringChange" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="1" selected="selected">До 5 минут</option>
<option value="2">От 5 до 10 минут</option>
<option value="3">От 10 до 15 минут</option>
<option value="4">От 15 до 20 минут</option>
<option value="5">От 20 до 25 минут</option>
<option value="6">От 25 до 30 минут</option>
</select></td>
</tr>
<tr >
<th class="stylered" align="left">ИТОГО (руб.):</th>
<td><input name="TarifTotal" type="text" class="styleredbig" style="width: 200px; color:#9a9a9a; background:#3e3e3e;" />
<input type="hidden" name="txtorder" />
</td>
</tr>
</table>
</form>
<script> <!--
var kolvdorogi;
var kolvminut;
var svedenieitogo; /// переменная на сведение
var masteringitogo; /// переменная на мастеринг
var itogo = svedenieitogo + masteringitogo; /// Итого
//////////////////////////////////////////////////// Функция Количество дорожек wav:
function CKolvoDorogi() {
var KolvoDorogiValue = document.Ceny.KolvoDorogi.value
if (KolvoDorogiValue == '1') {
kolvdorogi = 300;
}
else if (KolvoDorogiValue == '2') {
kolvdorogi = 390;
}
else if (KolvoDorogiValue == '3') {
kolvdorogi = 480;
}
else if (KolvoDorogiValue == '4') {
kolvdorogi = 570;
}
else if (KolvoDorogiValue == '5') {
kolvdorogi = 660;
}
else if (KolvoDorogiValue == '6') {
kolvdorogi = 750;
}
else if (KolvoDorogiValue == '7') {
kolvdorogi = 840;
}
else {
kolvdorogi = 930;
}
}
//////////////////////////////////////////////////// Функция СВЕДЕНИЕ ДА НЕТ
function CSvedenie() {
var SvedenieValue = document.Ceny.Svedenie.value
if (SvedenieValue == 'Yes') {
Ceny.KolvoDorogi.disabled = false;
svedenieitogo = kolvdorogi;
}
else {
Ceny.KolvoDorogi.disabled = true;
svedenieitogo = 0;
}
CKolvoDorogi();
}
//////////////////////////////////////////////////// Функция Количество минут:
function CMasteringChange() {
var MasteringChangevalue = document.Ceny.MasteringChange.value
if (MasteringChangevalue == '1') {
kolvminut = 200;
}
else if (MasteringChangevalue == '2') {
kolvminut = 400;
}
else if (MasteringChangevalue == '3') {
kolvminut = 600;
}
else if (MasteringChangevalue == '4') {
kolvminut = 800;
}
else if (MasteringChangevalue == '5') {
kolvminut = 1000;
}
else {
kolvminut = 1200;
}
}
//////////////////////////////////////////////////// Функция МАСТЕРИНГ ДА НЕТ
function CMastering() {
var MasteringValue = document.Ceny.Mastering.value
if (MasteringValue == 'Yes') {
Ceny.MasteringChange.disabled = false;
masteringitogo = kolvminut;
}
else {
Ceny.MasteringChange.disabled = true;
masteringitogo = 0
}
CMasteringChange();
}
////////////////////////////////////////////////////
window.onload = function Calculate2() {
CSvedenie();
CMastering();
}
//-->
</script>
</body>
|
|
17.02.2012, 12:41
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от k3b3
|
вылезала строка с ценой
|
наверно сделать функцию которая будет складывать нужные данные и присваивать значение нужному полю и добавить её во все функции может вам в раздел работа ?
|
|
17.02.2012, 13:19
|
Новичок на форуме
|
|
Регистрация: 15.02.2012
Сообщений: 8
|
|
Сообщение от рони
|
наверно сделать функцию которая будет складывать нужные данные и присваивать значение нужному полю и добавить её во все функции может вам в раздел работа ?
|
Не, нет у меня денег на оплату. Сам хочу добить. Не могу логики просто понять.
Вот у меня есть куча функций, которые загружаются при загрузке страницы последней функцией. Эти функции действуют только при изменении полей форм, т.е. var(ы) нужно изначально приравнять к нулю. Вот в каком дальше направлении копать не совсем ясно.
|
|
17.02.2012, 13:34
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
k3b3, ам )))
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
</head>
<body>
<form name="Ceny" action="" method="post" style="margin-left:auto; margin-right:auto">
<table style="border: 2px solid #CCC; background:#3e3e3e">
<tr>
<td class="text">СВЕДЕНИЕ:</td>
<td >
<select onchange="itogo()" name="Svedenie" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="Yes" >Да</option>
<option value="No" selected="selected">Нет</option>
</select>
</td>
</tr>
<tr>
<td class="text">Количество дорожек wav:</td>
<td>
<select onchange="itogo()" name="KolvoDorogi" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="1" selected="selected">до 10-ти шт.</option>
<option value="2">от 10 до 13 шт.</option>
<option value="3">от 13 до 16 шт.</option>
<option value="4">от 16 до 19 шт.</option>
<option value="5">от 19 до 22 шт.</option>
<option value="6">от 22 до 25 шт.</option>
<option value="7">от 25 до 28 шт.</option>
<option value="8">от 28 до 31 шт.</option>
</select></td>
</tr>
<tr>
<td class="text">МАСТЕРИНГ:</td>
<td>
<select onchange="itogo()" name="Mastering" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="Yes" >Да</option>
<option value="No" selected="selected">Нет</option>
</select>
</td>
</tr>
<tr>
<td class="text">Количество минут:</td>
<td><select onchange="itogo()" name="MasteringChange" style="width: 200px; color:#9a9a9a; background:#3e3e3e;">
<option value="1" selected="selected">До 5 минут</option>
<option value="2">От 5 до 10 минут</option>
<option value="3">От 10 до 15 минут</option>
<option value="4">От 15 до 20 минут</option>
<option value="5">От 20 до 25 минут</option>
<option value="6">От 25 до 30 минут</option>
</select></td>
</tr>
<tr >
<th class="stylered" align="left">ИТОГО (руб.):</th>
<td><input name="TarifTotal" type="text" class="styleredbig" style="width: 200px; color:#9a9a9a; background:#3e3e3e;" />
<input type="hidden" name="txtorder" />
</td>
</tr>
</table>
</form>
<script>
function itogo()
{
var SvedenieValue = (document.Ceny.Svedenie.value == 'Yes');
document.Ceny.KolvoDorogi.disabled = !SvedenieValue;
var KolvoDorogiValue = +document.Ceny.KolvoDorogi.value;
var svedenieitogo = SvedenieValue? [0,300,390,480,570,660,750,840,930][KolvoDorogiValue]:0;
var MasteringValue = (document.Ceny.Mastering.value == 'Yes')
document.Ceny.MasteringChange.disabled = !MasteringValue;
var MasteringChangevalue = +document.Ceny.MasteringChange.value;
var masteringitogo = MasteringValue? [0,200,400,600,800,1000,1200][MasteringChangevalue]:0;
document.Ceny.TarifTotal.value = svedenieitogo + masteringitogo
}
window.onload = function () {
itogo()
}
</script>
</body>
</html>
|
|
17.02.2012, 13:41
|
Новичок на форуме
|
|
Регистрация: 15.02.2012
Сообщений: 8
|
|
Мда, ну капец, оптимизация %)) Спасибо, Рони. Если нужно свести и отмастерить трек - обращайся, сделаю бесплатно %). Мдаа, нужно учить скрипт %)
|
|
|
|