Lotus-Notes: сброс радиогруппы через Javascript - PullRequest
0 голосов
/ 23 октября 2009

В настоящее время я работаю над решением Lotus Notes. Мы просто используем веб-формы, поэтому операции на стороне клиента выполняются через JavaScript.

Что я хочу сделать, это сбросить группу радио кнопок. Есть 3 варианта, и я хочу выбрать ни одного. (Возможность «ни один из них» была бы предпочтительнее, я знаю, но мы должны их сбросить)

Я сейчас использую:

//Unchecks a single group of Radio Buttons
//groupname - the name attribute of the group which selection needs to be unchecked
function clearRadioButtonGroup(groupName) {
    for(i=0;i<document.forms[0].elements[groupName].length;i++) {
                    document.forms[0].elements[groupName][i].checked = false;
            }
 }

Проблема этой процедуры в том, что Радиогруппа сбрасывается, но при отправке формы возвращается старое значение. Есть предложения?

Ответы [ 4 ]

2 голосов
/ 28 октября 2009

Какую версию Domino вы используете? Начиная с версии 7.x (я думаю) суррогатное поле %% создается как скрытое поле в вашем HTML, которое вы сможете сбросить, поэтому после отмены выбора всех параметров переключателя вы можете очистить %% Surrogate поле, и вам следует избегать выбора опции «Ничего из вышеперечисленного».

Мэтт

1 голос
/ 31 января 2011

Вставьте следующий код через HTML-код в форму:

<input type="hidden" name="FieldName" id="FieldID" value="">

(FieldName и FieldID - это имя и идентификатор вашего радиополя в форме)

Когда вы сбрасываете радио с помощью Javascript и отправляете документ, поле будет сброшено.

1 голос
/ 24 октября 2009

Проблема в том, что очистка переключателей не позволяет отображать информацию о них в отправленных данных формы, и Domino, похоже, интерпретирует это как без изменений в поле вместо очистка поля .

Я не нашел решения, которое мне действительно нравится, но я могу придумать два варианта:

  1. Измените переключатели для включения опции no choice .

Альтернатива немного комковатая:

  • Добавить редактируемое поле в форму для использования в качестве флага, скрыть его от веб-браузера с помощью css.
  • Иметь clearRadioButtonGroup также установить поле флага на что-то.
  • У события onChange переключателей очистить поле флага.
  • В агенте WebQueryOpen установите поле переключателей пустым, если поле флага не пустое.

Другой альтернативой может быть использование некоторого умного трюка javascript / css, чтобы скрыть параметр no choice , и clearRadioButtonGroup просто устанавливает этот выбор.

1 голос
/ 23 октября 2009

Вы уверены, что старое значение действительно передается? Возможно, он просто не обновляется (стирается) в редактируемом вами документе Notes? Просто догадка ...

Кстати, вы можете загрузить программу под названием Fiddler, которая позволит вам проверять HTTP POST, и вы можете подтвердить, что данные POST не содержат никаких значений для этой группы переключателей. Это может помочь сузить проблему.

...