Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 18 Ответов
  • 5540 Просмотров

Условия к формам
« : 24.09.2009, 16:30:58 »
Имеется несколько пунктов. В одном из пунктов несколько радио-кнопок. Можно ли сделать так, чтобы следующий пункт со строкой для ввода текста выводился лишь при выборе определённой радио-кнопки? Если можно, то как? Объясните кто может пожалуйста =)

P.S. Joomla 1.5, BreezingForms 1.5.9. Заранее благодарен)
« Последнее редактирование: 25.09.2009, 08:59:36 от художнег »

Re: Условия к формам
« Ответ #1 : 25.09.2009, 09:11:55 »
Еще одна проблемка: есть строка для ввода данных на сотрудника. ниже - кнопка, при нажатии на которую появляется такая же строка (если сотрудников несколько). Как сделать что-нить подобное?

Re: Условия к формам
« Ответ #2 : 28.09.2009, 16:46:06 »
Вроде разобрался как это сделать вручную...

Народ, подскажите хоть как к нужному радио-баттону добавить загрузку внешнего скрипта?
Выбираем нужный нам радио-баттон, переходим на вкладку scripts. Дальше - Action Scripts -> Custom (Галочка на Click), дальше что?

Если пишешь просто src="filename.js" - то не хочет он обращаться к скрипту. Что писать-то?
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #3 : 28.09.2009, 17:04:07 »
В Manage Script создаете новый документ (скрипт). Присваиваете ему имя, сам скрипт вставляется в нижнее поле,которое открывается при создании документа. Все это дело сохраняете.
В своей форме открываете "вкладку scripts. Дальше - Action Scripts -> Custom (Галочка на Click)" и выбираете свой скрипт для применения submit

Re: Условия к формам
« Ответ #4 : 29.09.2009, 09:13:14 »
В своей форме открываете "вкладку scripts. Дальше - Action Scripts -> Custom (Галочка на Click)" и выбираете свой скрипт для применения submit

vagkrsk, как выбрать что-то во вкладке "Custom", если ручками писать надо, причём как я понял вида "ff_{element_name}_action(element,action)"?

Объясните, пожалуйста, подробнее что где и куда)
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #5 : 29.09.2009, 09:43:30 »
vagkrsk, как выбрать что-то во вкладке "Custom", если ручками писать надо

Вношу поправку
В Manage Script создаете новый документ (скрипт). Присваиваете ему имя, сам скрипт вставляется в нижнее поле,которое открывается при создании документа. Все это дело сохраняете.
В своей форме открываете "вкладку scripts. Дальше - Action Scripts -> Library (Галочка на Click)" и выбираете свой скрипт для применения submit

В случае с "Custom":
Вставляете свой код в нижнее поле.

"ff_{element_name}_action(element,action)"?
Объясните, пожалуйста, подробнее что где и куда)

Примеры скриптов можно поглядеть в самом компоненте в разделе Manage Script

Re: Условия к формам
« Ответ #6 : 29.09.2009, 11:14:14 »
vagkrsk, спасибо огромное!)

Только всё равно пока что не очень получается))
Не подскажете в чём ошибка?

В общем, в "manage scripts" создал функцию, Package:FF, Type:Element Action,

function name_function()
{
  document.all.my.outerHTML="<INPUT TYPE='BUTTON' VALUE='Кнопка'>";
}

Затем к нужному нам радио-баттону прикрепил данный скрипт, создал элемент () с именем "my", который, собсно, и должен менятся на Кнопку после выбора радио-баттона, а он, сволочь такая, не меняется... Проверял вне Joomla (т.е. отдельная HTML-страничка и файл .js) - работает (правда в FF и NN не совсем, но это уже другая проблема ^-^ )
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #7 : 29.09.2009, 11:48:13 »
В дальнейших рассуждениях и действиях не очень "силен" по уровню подготовки
Но, если все правильно понял, то подскажу следующее.
Неоднакратно читал на форуме и сталкивался сам с тем, что нужно четко выдерживать
стили написания имен. Допустим, что это ff_validate_nextpage,
а Вы создали подобный новый скрипт и дали ему имя ff_My
В такой версии может не сработать.
Я, чтобы избежать дурных ошибок и потом их искать неведомо где, делаю просто ff_validate_nextpage1, дублирую.

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

Код
function ff_showaction(element, action)
{
   alert('Action '+action+' performed by element '+element.id);
}

Re: Условия к формам
« Ответ #8 : 29.09.2009, 11:58:17 »
vagkrsk, нет, метод alert выводит окошко с сообщением и кнопкой. Мне этого не нужно. Нужно, чтобы при выборе радио-баттона один элемент формы менялся на другой... либо же просто ниже радиобаттонов появлялся новый элемент для ввода данных пользователем.
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #9 : 29.09.2009, 12:11:21 »
vagkrsk, нет, метод alert выводит окошко с сообщением и кнопкой. Мне этого не нужно. Нужно, чтобы при выборе радио-баттона один элемент формы менялся на другой... либо же просто ниже радиобаттонов появлялся новый элемент для ввода данных пользователем.

Сейчас, понял назначение и смысл "батона" !
Есть встречное предложение.
Приведу пример из FacileForms 1.4.7 (что в принципе одно и то же) выпадающий список
Он для данной задачи более чем подходит и трудностей больших не предвидится в его оформлении и вставки в  общую таблицу. Тема
« Последнее редактирование: 29.09.2009, 12:14:57 от vagkrsk »

Re: Условия к формам
« Ответ #10 : 29.09.2009, 12:40:41 »
Спасибо за встречное предложение, в будущем, уверен, должно пригодиться =)

Но сейчас нужно немного другое: даже если вместо радио-кнопок делать раскрывающийся список с двумя вариантами "нет" и "да" - то при выборе варианта "да" должны появляться две строчки для ввода текста. При выборе варианта "нет" строчки должны оставаться невидимыми. Может и есть возможность сделать данную штуковину при помощи шаблона "Country selection", но это для меня оооооооооч сложно)) Неужели нет варианта попроще?
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #11 : 29.09.2009, 13:04:58 »
 Есть простой и очень неплохой компонент для форм RSform!Pro 1.2.0 rev 22
Использую вторым для форм сайта

Re: Условия к формам
« Ответ #12 : 29.09.2009, 14:00:06 »
А из бесплатного больше ничего нету?)
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий

Re: Условия к формам
« Ответ #14 : 30.09.2009, 13:34:41 »
vagkrsk, он у меня уже стоит  ^-^

Вроде нашёл несколько вариантов как решить свою проблему, но в BreezingForms не соображу как вставить код.
Прикрепил к своей радио-кнопке вот такого плана функцию:

Код: javascript
function createMessage(titlep, titles) {
 
  var container = document.createElement('div')
 
  container.innerHTML = '<div> \
    <div>'+titlep+'</div> \
    <input type="text" width="350" /> \
    <div>'+titles+'</div> \
    <input type="text" width="350" /> \
  </div>'
 
  return container.firstChild
} // Создание формы

function positionMessage(elem) {
  elem.style.position = 'absolute'
 
  var scroll = document.documentElement.scrollTop ||

document.body.scrollTop
  elem.style.top = scroll + 200 + 'px'
 
  elem.style.left = Math.floor(document.body.clientWidth/2) - 150 + 'px'
} // Позиционирование на странице

  // создать
  var messageElem = createMessage('Полное наименование', 'Сокращённое наименование')
 
  // позиционировать
  positionMessage(messageElem)
 
  // вставить в документ
  document.body.appendChild(messageElem)

Так тот div, который должен появляться при нажатии на радио-кнопку, появляется сразу при загрузке страницы. Хотя вне Joomla работает норм. Не подскажете где тут косяк и как можно это подправить?
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #15 : 30.09.2009, 13:42:32 »
Вроде нашёл несколько вариантов как решить свою проблему, но в BreezingForms не соображу как вставить код.

Так тот div, который должен появляться при нажатии на радио-кнопку, появляется сразу при загрузке страницы. Хотя вне Joomla работает норм. Не подскажете где тут косяк и как можно это подправить?

В таких делах, наверное, мне совета у Вас спрашивать нужно  ^-^

Re: Условия к формам
« Ответ #16 : 30.09.2009, 13:53:25 »
Уррррррррррря, получиииииииииилось!))))))))))
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Re: Условия к формам
« Ответ #17 : 30.09.2009, 14:58:04 »
Раскажи всем  ^-^
Будет интересно узнать, как получилось.
Может где-то придется использовать.

Re: Условия к формам
« Ответ #18 : 30.09.2009, 15:27:38 »
Допустим: есть две радио-кнопки ("Да" и "Нет"). Чтобы при нажатии на "Да" появлялись доп. строки для ввода текста, я прикрепил к ней следущую функцию (ff_da):

Код: javascript
function ff_da() {
function createMessage(titlep, titles) {
 
  var container = document.createElement('div')
 
  container.innerHTML = '<div id="an"> \
    <div>'+titlep+'</div> \
    <input type="text" width="350" /> \
    <div>'+titles+'</div> \
    <input type="text" width="350" /> \
  </div>'
 
  return container.firstChild
} // Создание формы

function positionMessage(elem) {
  elem.style.position = 'absolute'
 
  var scroll = document.documentElement.scrollTop ||

document.body.scrollTop
  elem.style.top = scroll + 200 + 'px'
 
  elem.style.left = Math.floor(document.body.clientWidth/2) - 150 + 'px'
} // Позиционирование на странице

  // создать
  var messageElem = createMessage('Полное наименование', 'Сокращённое наименование')
 
  // позиционировать
  positionMessage(messageElem)
 
  // вставить в документ
  document.body.appendChild(messageElem)}

Правда там ещё нужно повозиться с функцией позиционирования (function positionMessage), чтобы строки появлялись там где нужно - я просто пример один использовал - содрал почти ничего не изменяя =)

Да, но теперь появилась ещё одна проблема: на вторую радио-кнопку ("Нет") нужно повесить условие, чтобы появившиеся строки опять исчезали. Вне Joomla это сделать довольно просто: к данной радио-кнопке на событие "onclick" поставить следующее:
Код: javascript
messageElem.parentNode.removeChild(messageElem)
- всё работает как надо. А вот в BreezingForms пока вставить не получается ((

Люди знающие, помогите, а?  :'(
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться