Javascript.RU

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

Обработка Select
Есть два вопроса по select
Вопрос 1. Мне нужно забрать выбранное значение в селекте и потом вывести его в определенном месте страницы. Делаю так:
var z=document.cart_quantity.nameSelect.value;
В таком виде все работает отлично, значение получаю. Проблема в том, что скрипт может генерировать несколько селектов на странице. И какой-то веселый программист не придумал ничего лучше чем присваивать им имена вида:
id[1] - первый селект, id[2] - второй, и т.д.
Забирать значения у селекта так: var z=document.cart_quantity.id[1].value; не получается. Т.к. ява думает, что это значение массива. Присваивание значения массиву результата также не дало.
Есть какой-то выход из данной ситуации? Изменить вид вывода имени селекта - плохой вариант, т.к. это движок магазина и придется ковырять кучу скриптов куда передаются значения.

Вопрос 2. Как сделать, чтобы при загрузке страницы в определнном месте уже выводилось первое значение селекта?
Строго не судите. С JS общаюсь второй день. :rolleyes:
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2009, 04:06
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

1) document.cart_quantity.elements['id[1]'].value
2) находишь select (проверяешь, что он уже существует если надо); достаешь из него первое значение; вставляешь его куда надо
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2009, 14:27
Интересующийся
Отправить личное сообщение для Oleg_Antonov Посмотреть профиль Найти все сообщения от Oleg_Antonov
 
Регистрация: 03.04.2009
Сообщений: 18

не понял про второй вопрос. Можно немного поподробнее?
По поводу первого - все заработало "на ура"! Огромное спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2009, 17:24
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

я тоже про второй вопрос не понял скорее всего, поэтому написал как понял
Ответить с цитированием
  #5 (permalink)  
Старый 03.04.2009, 17:49
Интересующийся
Отправить личное сообщение для Oleg_Antonov Посмотреть профиль Найти все сообщения от Oleg_Antonov
 
Регистрация: 03.04.2009
Сообщений: 18

Там какой смысл. Это сайт интернет-магазин.
Для товара есть разные атрибуты. Допустим человек может выбрать цвет одежды. В зависимости от выбора цвета - меняется цена товара (основная цена + цена за цвет). Когда страница загружается цена не показывается, т.к. скрипт не знает какой цвет выбран. Цена появляется только после выбора цвета товара из селекта. Причем сразу первое значение его почему-то выбрать невозможно.
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2009, 17:55
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

часть браузеров сами выберут первое значение (насколько я помню), для остальных добавляешь selected к первому элементу. Разве не работает?
Ответить с цитированием
  #7 (permalink)  
Старый 03.04.2009, 18:01
Интересующийся
Отправить личное сообщение для Oleg_Antonov Посмотреть профиль Найти все сообщения от Oleg_Antonov
 
Регистрация: 03.04.2009
Сообщений: 18

С selected не получится. Список формирует php функция. Она также формирует все остальные выпадающие менюхи на сайте. Сделать тупо другую функцию - тоже не вариант. Если делаешь другую - товары не отправляются в корзину, при оформлении заказа невидно выбранных атрибутов и т.д. Тоесть при смене функции придется ковырять много скриптов и править их.
Была у меня идея сделать через onLoad запуск функции передающий текущее значение селекта, но в IE всплывает окошко "заблокировать небезопасный элемент?" Хотелось бы без этого, т.к. большинство народа ткнет да, и тем самым цену на товар не увидят.
Ответить с цитированием
  #8 (permalink)  
Старый 03.04.2009, 19:55
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

в большинстве случаев "выбирать" пункт с помощью php - самый лучший вариант. У тебя я пока не заметил причин делать это с помощью javascript
Ответить с цитированием
  #9 (permalink)  
Старый 04.04.2009, 22:20
Интересующийся
Отправить личное сообщение для Oleg_Antonov Посмотреть профиль Найти все сообщения от Oleg_Antonov
 
Регистрация: 03.04.2009
Сообщений: 18

Спасибо. Решил те проблемы. Осталась последняя и самая глупая. Но мозг у меня уже кипит, поэтому придумать как реализовать не могу.
Задача:
function rePrice(){
var priceO="1200 руб."; //вывод цены "по умолчанию"
var priceOld=parseFloat(priceOld);
var a3 = [0.0000, "-"]; //вывод массива с элементами для 1ого атрибута
var a4 = [600.0000, "+"]; //вывод массива с элементами для 2ого атрибута
var z=document.cart_quantity.elements['id[1]'].value; //передача значения из select
var newPrice=priceOld + a.z[0]; // складавание цены "по умолчанию" и цены выбранного через селект атрибута
var myElement = document.getElementById("newBlock");
myElement.innerHTML = newPrice;}

Подскажите как в строке var newPrice=priceOld + a.z[0]; выводить значение "z". Или может какой-то более лучший способ получения данных атрибутов, с последующим складыванием их с начальной ценой.
Ответить с цитированием
  #10 (permalink)  
Старый 05.04.2009, 00:59
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

не знаю, что у тебя там a и z, но у элементов формы есть атрибут value
p.s. стоит еще делать проверки, что в полях указана корректная информация
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача всех Options из Select (не только выбранных) dm1tr1y Общие вопросы Javascript 6 23.03.2009 18:51
Сброс параметра select petr0007 Общие вопросы Javascript 2 16.02.2009 13:23
Как вывести на экран значение функции SELECT MAX(id) Владдд Серверные языки и технологии 3 25.01.2009 16:07
Валидация select sdff Общие вопросы Javascript 1 22.10.2008 18:02
Динамическое обновление списка Select Fender Events/DOM/Window 3 12.06.2008 21:30