Программирование > JavaScript & JScript
Помогите пожалуйста (форма)
Blizzard:
Сэры! Есть форма. В которой есть выбор "метод обработки заказа".
Так вот как бы сделать так, что бы при выборе "Выписка счета", подписи к полям: Название организации, ИНН организации становились бы красненькими, а поле адрес еще и менялось на Юр. адрес. И эти три поля становились бы обязательными к заполению.
При выборе любого другого пункта все становилось бы как есть.
Помогите пожалуйста, что никак не могу решить эту проблему :(
Форма тут: http://www.ultrabook.ru/temp/ddd.htm
semya:
--- Цитировать ---И эти три поля становились бы обязательными к заполению.
--- Конец цитаты ---
ну это все зависит от того, каким методом ты проверяешь правильность заполнения формы, если ты все хочешь сделать на стороне клиента, то надо смотреть скрипт проверки формы, а если на стороне сервера, то там вообще проблем по-моему никаких, если такой метод обработки заказа, то проверять эти поля, иначе нет...
ну а с изменением цвета на onchange по-моему у select пропиываешь функцию, которая меняет стиль ячейки таблицы или чего там где у тебя прописаны названия полей, вернее их заголовки
- сменяем цвет текста в ячейке таблицы с идентификатором td_id на красный
Blizzard:
Хммммм... Что-то у меня не получилось через OnChange.
Может попробуешь накалякать? Пллззззз
http://www.ultrabook.ru/temp/ddd.htm
p.s Проверят надо на стороне клиента.
Nickii:
Твое название
/* Внимание! Потребуется глобальная переменная, флаг в котором хранится тип метода
обработки, т.е. true - значит выбрана "выписка счета"*/
var schet = false;
// в функцию надо добавить проверку см. ниже
function checkmail()
{ var form = document.otpravkanamilo,
txt0 = form.familia.value,
txt1 = form.email.value,
txt2 = form.wwwname.value,
txt3 = form.naznachenie.value;
if (txt0 == "")
{
alert("Введите ФИО контактного лица");
return(false);
}
if (txt1 == "")
{
alert("Введите e-mail");
return(false);
}
if (txt2 == "")
{
alert("Введите телефон");
return(false)
}
if (txt3 == "")
{
alert("Введите метод обработки заказа");
return(false)
}
/* Если выбрали "выписка счета" значит надо проверить оставшиеся элементы формы
которые стали обязательны */
if(schet)
{
var txt4 = form.gorod.value,
txt5 = form.wwwurl.value,
txt6 = form.inn.value;
if (txt4 == "")
{
alert("Введите юридический адрес фирмы");
return(false);
}
if (txt5 == "")
{
alert("Введите название фирмы");
return(false)
}
if (txt6 == "")
{
alert("Введите ИНН фирмы");
return(false)
}
}
}
// Это все здорово, но я бы сделал примерно так
/*
var go = false;
if(txt0 && txt1 && txt2 && txt3)
{
go = true;
if(schet && (!txt4 || !txt5 || !txt6))
go = false;
}
if(!go) alert("Поля помеченные звездочкой \'*\' обязательны для заполнения!");
return go; */
/* Эта та функция которая тебе нужна - вешается на событие onChange элемента */
function checkOption()
{
/* otpravkanamilo - плохо звучит лучше так - send_to_mail
naznachenie - type
Получаем значение селекта */
var select = document.otpravkanamilo.naznachenie.value;
/* Если значение равно нужному, и ранее оно небыло выбрано,
или если значение не равно нужному, но оно было выбрано ранее (улавливаешь?:)*/
if((select == "выписка счета" && !schet)||(select != "выписка счета" && schet))
{
/* Получим объекты - ячейки которые хотим изменить (для этого в должен быть задан id см.тело документа)*/
var firmName = document.getElementById("name_firm"),
firmInn = document.getElementById("inn_firm"),
firmAdres = document.getElementById("adres_firm");
// Если ранее не было выбрано нужное нам значение
if(!schet)
{
// тогда перекрашиваем в красный
firmName.style.color = "#FF0000";
// И меняем текст
firmName.innerHTML = "Название организации *";
firmInn.style.color = "#FF0000";
firmInn.innerHTML = "ИНН организации *";
firmAdres.style.color = "#FF0000";
firmAdres.innerHTML = "Юридический адрес *";
}
// в противном случае
else
{
// перекрашиваем в черный
firmName.style.color = "#000000";
// и меняеи текст на начальный
firmName.innerHTML = "Название организации";
firmInn.style.color = "#000000";
firmInn.innerHTML = "ИНН организации";
firmAdres.style.color = "#000000";
firmAdres.innerHTML = "Адрес";
}
// не забудем изменить флаг на противоположное значение false = !true;
schet = !schet;
}
}
.position { LEFT: 0px; VISIBILITY: hidden; WIDTH: 0px; POSITION: absolute; TOP: 0px }
ФИО*
Персональный код
E-Mail*
Телефон*
Адрес
Название организации
ИНН организации
Метод обработки*
выберете
выставление резерва
выписка счета
заявка на доставку
сборка компьютера
Выбрать
* - поля
обязательные для заполнения
Blizzard:
--- Цитировать ---Nickii:
Навигация
Перейти к полной версии