Вопрос по очистке полей

Тема в разделе "Lotus - Программирование", создана пользователем Gor, 12 авг 2008.

  1. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Делаю бланк тестирования под WEB.

    Возникла проблема.
    На форме с тестированием на WebQueryOpen вешаю формульку для очистки всех полей от прошлых результатов.

    Код (Text):
    @SetField("Reason1";"");
    @SetField("Reason1_1";"");
    В результате Одно поле чистится и срабатывает поле InputValidation, а другое не чистится...
    В Input Validation в полях проверка @If(@ThisValue="";@Failure(ValidationErrorMsg+"You doesn't fill all fields");@Success)

    Валидация не срабатывает изза того что не срабатывает WebQueryOpen одинаково для всех полей.

    Поле Reason1 текстовое editable обычное
    Поле Reason1_1 Radio button editable

    Вот как раз @SetField("Reason1_1";""); не отрабатывается... Почему???

    Как привести поле radio button к значению "" на момент открытия формы в WEB???
     
  2. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Дело в том что проблема точно в виде поля...
    Пробовал менять поле Radiobutton на Editable. И на это же самое поле с таким же именем только другого типа Input Validation отрабатывает(((
    Что делать??? Как всё таки почистить Radiobutton при открытии заявки в WEB до значения "" ???
     
  3. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Может быть кто нибудь тогда подскажет как сделать провеку поля на пустоту на JS?
    Может у кого нибудь примерчик есть какой нибудь?
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    не используй ты эти InputValidation, сделай проверку JS, а потом дополнительно LS-проверку, на случай, если JS обойдут...

    по JS смотри циклы, метод document.getElementsByName()
    алгоритм такой, радио-группа с именем поля Radio1 будет представлена набором html-элементов на странице, поэтому тебе нужно взять их все, и проверить, что какой-то отмечен - имеет свойство checked = true
    а в LS просто берешь значение итема Radio1, и сравниваешь с нужным...
     
  5. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Ок спасибо)
    А вот эту проверку на JS script на каком событии делать???
    На кнопке Submit??? Но у меня там же на формулах запуск агентов...Как сделать так чтобы сначала
    поля проверить а потом агентов запустить Лотусовых типа @Do(@Command([ToolsRunMacro]; "(MegaFoodSubmitVote)");@Command([FileSave]);@Command([FileCloseWindow]))?
    И не подскажете ещё какой нибудь ресурс где про JS под Лотус почитать можно??
     
  6. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Не пойму почему не получается проверка((

    На OnClick поля радиобаттон повесил

    // Радиобаттон выбран
    function isValidRadio(UserInput_6) {
    var valid = false;
    for (var i = 0; i < UserInput_6.length; i++) {
    if (UserInput_6.checked) {
    return true;
    }
    }
    alert("Выберете радиобаттон.");
    return false;
    }

    По нажатию на кнопку Submit <input type="button" onclick="this.form.submit();" />
    при неотмеченном поле ошибка не выходит ((( Почему?(
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    нету JS под нотес, во всяком случае, я нигде не нашел где описан JS работающий под нотесом, а на веб-страницах самый обычный JS, который работает в браузере! соотв, любую литературу можешь взять, их много, я сам пользуюсь MSDN, но он очень сильно заточен под IE...

    для того, чтобы сделать проверки JS, то можно поступить разными способами, можно на сабмит, можно на кнопку, все зависит от того, как твой пользователь работает с документом!
    например,
    - на onSubmit можно прописать нужные проверки на JS, потом кликнуть по какой-то кнопке, которая уже запустит твой агент;
    - можно поменять action для формы, и запустить нужный код, но это не самый удобный вариант, т.к. домино туда формирует нужный код, и его придется сохранять, чтобы потом выполнить, в общем, не самый удобный;
    - если твой пользователь в конце работы с документом обязан нажать какую-то кнопку, то это не обязательно должна быть кнопка типа submit!, даешь ему другую кнопку, которая сначала выполняет проверки, потом либо кликает по кнопке, которая выполняет формулу, либо сама ж вызывает сабмит формы;

    чтобы кодом кликнуть по кнопке нужно, чтобы была сама кнопка с указанным name и/или id, часто хорошо, если они одинаковые, т.е. на странице, в конце концов, должен появиться
    Код (Text):
    <input type=button id="myButton1" value="clickMe" />
    а код, который по ней кликает, может быть таким:
    Код (Text):
    document.getElementById("myButton1").click();

    ------------------------------------------------------------------------------------------------------------------
    потому что ты не вызов функции сделал, а объявил метод внутри функции обработчика...

    повесь свою функцию в JS Header и запусти ее на обработчик onSubmit
     
  8. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Сделал следующим образом для полей типа text и radiobutton функция checkform

    Код (Text):
    //var buttonClicked = '';
    function checkform(form)
    {
    //  if (!(buttonClicked=='button')) return true;
    if ( form.Reason1.value == '' ) {
    alert('Validation error: Please fill in "Вопрос1 field.');
    form.Reason1.focus(); return false;
    };
    var IsChecked = false;
    var TypeValue = '';
    for (var i=0; i<form.UserInput_6.length; i++)
    {
    if (form.UserInput_6[i].checked) {IsChecked=true;TypeValue=form.UserInput_6[i].value;break}
    }
    if (!IsChecked) {alert('Вопрос 2 field.');return false};}
    повесил на JS Header... и вызываю по кнопке
    Код (Text):
    <input type="button" onclick="checkform(form);" />
    работает))

    Но чёто я всё равно не совсем понял как сейчас если ошибок не появилось запустить код @Do(@Command([ToolsRunMacro]; "(MegaFoodSubmitVote)");@Command([FileSave]);@Command([FileCloseWindow])) по этой же самой кнопке??
     
  9. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    :blink:
    сделай еще в JS Header функцию, например, MySubmit(), если твоя функция checkform возвращает true, если все хорошо, то можно ее такой сделать:

    Код (Text):
    function MySubmit() {
    if (checkform(document.forms[0]))
    document.getElementById("nextAction").click();
    };
    где nextAction - кнопка форме, у которой id = "nextAction", а на этой кнопке свои собаки напиши

    тогда, если проверка проходит удачно, то JS "кликнет" по нужной кнопке, и запустится собака...

    надеюсь, понятно все :)
     
  10. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    ну вроде понятно=)) только не работает)

    мой jsHeader

    Код (Text):
    function MySubmit() {
    if (checkform(document.forms[0]))
    document.getElementById("nextAction").click();
    };

    //var buttonClicked = '';
    function checkform(form)
    {
    //  if (!(buttonClicked=='button')) return true;
    if ( form.Reason1.value == '' ) {
    alert('Validation error: Please fill in "Вопрос1 field.');
    form.Reason1.focus(); return false;
    };
    var IsChecked = false;
    var TypeValue = '';
    for (var i=0; i<form.UserInput_6.length; i++)
    {
    if (form.UserInput_6[i].checked) {IsChecked=true;TypeValue=form.UserInput_6[i].value;break}
    }
    if (!IsChecked) {alert('Вопрос 2 field.');return false};}
    сделал кнопку обычную. В её закладке Html-> tag-> id = nextAction

    И на картинке по событию Onclick -> MySubmit()

    Проверки полей проходят, а вот агент не запускается)

    @Do(@Command([ToolsRunMacro]; "(MegaFoodSubmitVote)");@Command([FileSave]);@Command([FileCloseWindow]))
     
  11. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а ты уверен, что твоя функция проверки возвращает true? :blink:
    добавь в ее конец возврат true:

    Код (Text):
    if (!IsChecked) {alert('Вопрос 2 field.');return false}; return true}
     
  12. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    добавил :blink:
    Теперь когда заполняешь все поля браузер ругается Error on page=)))

    Может здесь чёто не так?

    Код (Text):
    function MySubmit() {
    if (checkform(document.forms[0]))
    document.getElementById("nextAction").click();
    };
     
  13. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ну, ты бы для примера привел текст ошибки, что ли :)

    но, если он ругается на document.getElementById("nextAction"), значит у тебя нету в html'е элемента с таким айди, проверь исходники страницы, если такого элемента действительно нет, а кнопка есть, то значит она скрыта, а ее надо скрыть не от "страницы", а от юзеря, для этого нужно либо у нее прописать стиль display:hidden, либо поместить ее в какой-нить div с таким стилем...
     
  14. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    да, действительно не находил, изза того что кнопка скрыта была... как кнопку открыл всё отработало
    вот и откуда узнать такие тонкости?))

    прописал в кнопке в закладке html - > display:hidden почему то всё равно видна(
    буду пытаться в div засунуть тогда
     
  15. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    надо в раздел Html tags / Style прописывать

    тонкости эти - практика
     
  16. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Код (Text):
    надо в раздел Html tags / Style прописывать
    А где этот раздел находится?
     
  17. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    шутник однако :)

    раздел Html tags на последней закладке у свойств кнопки, а чуть ниже полей id, name и т.п., есть Style
     
  18. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    конец дня наверно сказывается))
    =)) ну я это и имел ввиду в моём сообщении выше -
    т.е. в кнопке то я уже прописал display:hidden а кнопка всё равно не скрывается
     
  19. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ану-ка скинь в студию html твоей видимой кнопки со страницы :)
     
  20. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Код (Text):
    <input type="button" value="nextAction" id="nextAction" style="display:hidden" onclick="return _doClick('C325742E0026962F.67d3ce88d2ec7980c325742e0026e8cf/$Body/0.8D52', this, null)"></td></tr>
    :)
     
Загрузка...
Похожие Темы - Вопрос по очистке
  1. ApplePen
    Ответов:
    0
    Просмотров:
    60
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    92
  3. kartaman
    Ответов:
    0
    Просмотров:
    127
  4. Peter
    Ответов:
    4
    Просмотров:
    522
  5. di0d_
    Ответов:
    1
    Просмотров:
    437

Поделиться этой страницей