Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Обновление поля формы, не меняется старое значение (https://javascript.ru/forum/dom-window/4296-obnovlenie-polya-formy-ne-menyaetsya-staroe-znachenie.html)

d0ublezer0 09.07.2009 16:10

Обновление поля формы, не меняется старое значение
 
Есть такое дело - форма содержится в скрытом DIV, есть функция, которая должна записать в поля формы нужные значения и потом вызвать HighSlide (такой компонент типа LightBox) который разворачивает скрытый DIV

Проблема: почему-то в форме записываются новые значения только при первом вызове функции.
Дальнейшие вызовы с другими значениями данные в полях не меняют.
В дебаггере (FiireBug) вижу, что новые значения в функцию передаются.
Почему так?

После перезагрузки страницы снова та же песня: первый вызов меняет данные в полях, последующие - нет.

Функцию привожу ниже.

function ParamsToHelper (obj, HelperType, Carving, DmOut, DmIn, Bush) {
// HelperType - тип фитинга
// Carving - тип резьбы
//DmOut - диаметр резьбы наружный
//DmIn - диаметр резьбы внутренний
//DmIn - площадь прокладки
     
    var HelperForm = document.forms['fithelper_form_' + HelperType];
    if (HelperForm) {
        HelperForm.elements["dm_out"].value = DmOut;
        HelperForm.elements["dm_in"].value = DmIn;
        HelperForm.elements["carving"].value = Carving;
        HelperForm.elements["bush"].value = Bush;
        hs.htmlExpand(obj, { contentId: 'fithelper_din' } );
    } else {
        alert("не найдено");
    }
    return false;
}

Snowcore 10.07.2009 10:50

Попробуйте отдебажить саму функцию ParamsToHelper

d0ublezer0 10.07.2009 10:56

Я разобрался. Тут проблема в HighSlide - оказывается, он кеширует содержимое формы при открытии.

Как этого избежать - не известно.
Только если содержимое делать в IFrame. Но мне нужно потом из этого фрейма передавать значение в родительский документ, который, в свою очередь, возможно тоже будет во фрейме... :blink:
Жесть, да..

пример работы, и зачем нужно такое нагромождение, можно посмотреть на http://new.kaskadnn.ru - нажмите сверху на ссылку Форма заказа РВД, а в ней - справочник фитингов

Snowcore 10.07.2009 11:00

Вы не зарегистрированы

Размещать заявки на изготовление рукавов высокого давления (РВД) и покупать готовые изделия из каталога могут только зарегистрированные посетители сайта.

:)

Kolyaj 10.07.2009 11:03

Цитата:

Сообщение от Snowcore
Вы не зарегистрированы

Интересно, сколько клиентов потеряно из-за прихоти разработчика :)

d0ublezer0 10.07.2009 12:06

Ну прихоть - она обоснована. При регистрации указываются данные заказчика. И заказ изготавливается под конкретного клиента. Потому как товар штучный.

Сейчас убрал сообщение о регистрации. Посмотрите пожалуйста.

Kolyaj 10.07.2009 12:24

Тут есть психологический эффект. Если пользователю сразу суют форму регистрации, он трижды подумает, а надо ли ему это. Если же он уже оформил заказ и на последнем шаге предлагается зарегистрироваться, ему ничего другого не останется, не зря же заказ оформлял. Для пользователя первичен все-таки заказ, а не регистрация на сайте.


Часовой пояс GMT +3, время: 04:48.