Перейти к содержимому


Показ/скрытие полей через JavaScript


Сообщений в теме: 333

#161 GoGPS

    Активный участник

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • Пол:Мужчина

Отправлено 03 Июль 2014 - 10:02

Хм, логично :)

Помогите плс, что надо прописать что бы при загрузке страницы так же названия групп были скрыты?

#162 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 03 Июль 2014 - 10:40

Просмотр сообщенияGoGPS (03 Июль 2014 - 10:02) писал:

Помогите плс, что надо прописать что бы при загрузке страницы так же названия групп были скрыты?

http://clientbase.ru...indpost&p=24786

#163 GoGPS

    Активный участник

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • Пол:Мужчина

Отправлено 03 Июль 2014 - 11:17

Спасибо, попробую...

#164 GoGPS

    Активный участник

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • Пол:Мужчина

Отправлено 03 Июль 2014 - 12:56

Простите, но еще вопрос.

Есть ли возможность при определенном выборе из выпадающго списка так же показывать и скрывать подтаблицу?

Если да, то как это сделать?

#165 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 03 Июль 2014 - 13:04

Просмотр сообщенияGoGPS (03 Июль 2014 - 12:56) писал:

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

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#166 GoGPS

    Активный участник

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • Пол:Мужчина

Отправлено 03 Июль 2014 - 13:20

Спасибо!

#167 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 26 Август 2014 - 12:17

Если я скрываю, показываю поле через js. Можно ли через Js включать/отключать "Обязательно для редактирования". Если да - то как?

#168 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 02 Сентябрь 2014 - 11:15

Просмотр сообщенияwondertalik (26 Август 2014 - 12:17) писал:

Если я скрываю, показываю поле через js. Можно ли через Js включать/отключать "Обязательно для редактирования". Если да - то как?
Ап что-ли.

#169 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 03 Сентябрь 2014 - 12:13

Наверняка уж как-то можно, т.к. контроль идет по js. Попробуйте самостоятельно разобрать механизм по исходному коду страницы.

#170 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 11 Сентябрь 2014 - 16:13

Подскажите пожалуйста по js:
добавил доп. действие во всплывающем окошке. В нем есть select. Задача такая - чтобы при выборе в селекте отображались нужные поля. Сейчас делаю так:
код в js:
$(document).ready(function() {
$('#myform').change(function(){
var selection = $('#myform :selected').attr('id');
if(selection=='fut')
{
	    $('#otk div').css('display','none');
  $('#fut').css('display','block');
 
}
if(selection=='otk')
{
	 $('#fut div').css('display','none');
	 $('#otk').css('display','block');
 
}
});
});
Вычисление:
$line['Дата начала работ']=date("Y-m-d H:i:s");
$line['Менеджер'] = $user['id'];
if ($_GET["res"]!=NULL)
   {
	 if($line['Телефон (основной)']==0)
	 {
		  $line['Телефон (основной)']=$_REQUEST["phone2"];
	 }
	 else
	 {
	    $sotr['Контрагент']=$line['ID'];
	    $sotr['ФИО'] = "Новый сотрудник";
	    $sotr['Телефон'] = $_REQUEST["phone2"];
	    insert_query($sotr, "Сотрудники");
	 }
	 $mas['Тип']="Звонок";
	 $mas['Тип обращения']="Первичное выяснение потребности";
	 $mas['Результат']=$_REQUEST["res"];
	 //$mas['Тип результата']=$_REQUEST["result"];
	 $mas['Менеджер'] = $user['id'];
	 $mas['Компания'] = $line['ID'];
	 //$mas['Статус'] = "Запрос";
	 $mas['План-дата'] = 0;
	 $mas['Выполнено'] = "Да";
	 insert_query($mas, "Работа с клиентом");
	
	 if($_GET["selection"]=="Будущее действие")
	 {
	    $fut['Тип']=$_REQUEST["f_select"];
	    $fut['План-дата']=$_REQUEST["data"];
	    $fut['План-действие']=$_REQUEST["result"];
	    $fut['Результат']=$_REQUEST["comment"];
	    $fut['Менеджер'] = $user['id'];
	    $fut['Компания'] = $line['ID'];
	    insert_query($fut, "Работа с клиентом");
	 }
	 else
	 {
	    $otk['Результат']=$_REQUEST["otkaz"];
	    $otk['Менеджер'] = $user['id'];
	    $otk['Компания'] = $line['ID'];
	    insert_query($otk, "Работа с клиентом");
	 }
	 echo "<script>";
	 echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
	 echo "window.close()"; // Закрываем текущее
	 echo "</script>";
   }
   else
   {
   if ($_REQUEST["res"]==0 && isset($_REQUEST["check"])) echo "<p style='color:#ff0000; font-size:15px;text-align:center;'>Вы забыли добавить результат</p>";   
   }
echo "<form id='myform' method='get'>";
echo "<p style='font-size:18px;text-align:center;'>Выполните телефонное обращение</p>";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='$ID'>";  // Значение строки
echo "<input type='hidden' name='check' value='checked'>";
if($line['Телефон (основной)']!=0)
{
echo "<p style='font-size:18px;text-align:center;'>Номер телефона: <strong>".$line['Телефон (основной)']."</strong></p>";
echo "Добавить номер телефона: <input name='phone' value=''>";
}
else
{
echo "<p style='font-size:18px;text-align:center;'>Номер телефона уточните на сайте: <strong><a target=_blank href='http://".$line['Сайт']."'>".$line['Сайт']."</a></strong></p>";
echo "Добавить номер телефона: <input name='phone2' value=''>";
}
echo "<br>Результат*:";
echo "<br><textarea name='res' rows='10' cols='45'></textarea>";
// выбор
echo "<select onchange='document.getElementById('future').style.display='block';' style='width:340px;' name='selection'>";
echo "<option selected disabled>Выбрать действие</option>";
echo "<option id='fut' value='Будущее действие'>Будущее действие</option>";
echo "<option id='otk' value='Отказ'>Отказ</option>";
echo "</select>";
//Будущее действие
echo "<div style='display:none;' id='future'>";
echo "<select style='width:340px;' name='f_select'>";
echo "<option selected disabled>Выбрать будущее действие</option>";
echo "<option value='Звонок'>Исх. Звонок</option>";
echo "<option value='Почта'>Исх. email</option>";
echo "<option value='Встреча'>Исх. встреча</option>";
echo "</select>";
echo "<br>Дата будущего действия: <input style='width:170px;' name='data' type='date'  value=''>";
echo "<select style='width:340px;' name='result'>";
echo "<option selected disabled>Выбрать результат обращения</option>";
echo "<option value='Отправить КП'>Отправить КП</option>";
echo "<option value='Отправить договор'>Отправить договор</option>";
echo "<option value='Отправить счет'>Отправить счет</option>";
echo "<option value='Отправить образцы'>Отправить образцы</option>";
echo "<option value='Перенос'>Перенос</option>";
echo "<option value='Повтор'>Повтор</option>";
echo "<option value='Отказ'>Отказ</option>";
echo "</select>";
echo "<br>Комментарий:";
echo "<br><textarea name='comment' rows='10' cols='45'></textarea>";
echo "</div>";
echo "<div style='display:none;' id='otkaz'>";
echo "<br><br>Причина отказа:";
echo "<br><textarea name='otkaz' rows='10' cols='30'></textarea>";
echo "</div>";
echo "<br><input type='submit' value='Отправить'>";
echo "</form>";


#171 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Сентябрь 2014 - 17:55

Цитата

В нем есть select. Задача такая - чтобы при выборе в селекте отображались нужные поля

Не совсем понял, в чем проблема. Опишите, в чем конкретно трудность заключена.

#172 aleks.goodcolor

    Активный участник

  • Пользователи
  • PipPipPip
  • 198 сообщений
  • Пол:Мужчина
  • Город:Йошкар-ола

Отправлено 12 Сентябрь 2014 - 08:36

Просмотр сообщенияCbCoder (11 Сентябрь 2014 - 17:55) писал:

Не совсем понял, в чем проблема. Опишите, в чем конкретно трудность заключена.
Суть в том чтобы при выборе определенного значения в селекте появились бы новые поля для заполнения. Сейчас у меня получилось реализовать это путем вставки кода js в вычисление. Скажите пожалуйста если я вставляю код в Javascript то необходимо прописывать там теги <script type='text/javascript'> и подключать нужные js файлы?

#173 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Сентябрь 2014 - 10:01

Если вставляете код в поле "Javascript", то разумеется не надо добавлять <script type='text/javascript'>.

#174 nevmerzhitsky

    Участник

  • Пользователи
  • PipPip
  • 24 сообщений
  • Пол:Мужчина

Отправлено 23 Октябрь 2014 - 03:49

Просмотр сообщенияwondertalik (26 Август 2014 - 12:17) писал:

Если я скрываю, показываю поле через js. Можно ли через Js включать/отключать "Обязательно для редактирования". Если да - то как?

Корявый код проверки обязательности в частности проверяет значение следующего скрытого поля формы:
<input type="hidden" id="main12091" value="1">
на value == 1 (значение id разумеется содержит идентификатор поля). То есть, по умолчанию для всех обязательных полей этот тег присутствует в теле страницы со значением 1, для необязательных этого тега нет вообще. Следовательно, если хотите убрать обязательность, то измените value этого тега на 0, а если сделать обязательным - добавьте этот тег с value=1 куда-нибудь в DOM.

Разработчики КБ, в теле страницы для каждого обязательного поля присутствует тег вида <input type='hidden' id="type_value12091" value='5'>, но в JS используется значение из all_fields[...]['type_field'], значит этот тег - мусор. А также в массиве all_fields элемент type_value всегда имеет значение '$one_field.type_value_js', что явно баг подстановки из PHP (да и зачем этот элемент нужен, если вы работаете с type_field).

Сообщение отредактировал nevmerzhitsky: 23 Октябрь 2014 - 03:57


#175 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 23 Октябрь 2014 - 08:37

Отправьте заявку в техподдержку с описанием бага, они поставят задание программистам на исправление.

#176 Grosso2020

    Активный участник

  • Пользователи
  • PipPipPip
  • 76 сообщений

Отправлено 15 Февраль 2015 - 09:38

Просмотр сообщенияtel (11 Март 2011 - 18:04) писал:

есть ли возможность в 1.9.3 сделать авто показ/скрытие полей ?

например как только в списке мы выбираем один пункт (заказ на авто) - то сразу же ниже показываются поля - которые нужно заполнить для заказа именно авто.

а если мы выберем пункт (заказ катера) - то покажутся уже другие поля.

возможно это как то можно реализовать через ява скрипт.

в любом случае это очень удобно


#177 GoGPS

    Активный участник

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • Пол:Мужчина

Отправлено 19 Февраль 2015 - 15:22

Подскажите плс, что надо добавить в код, что бы при загрузке страницы изначально поля: 3900, 5380, 5370 были скрыты.
При изменени поля 5360 на то или другое значение все отрабатывает корректно.

Ниже код:

function status_select() {
var status = $('#value5360');
if (status.val()=='Заключен') {
display_field(3900, 1);
display_field(5380, 0);
display_field(5370, 0);
}
else if (status.val()=='Приостановлен' || status.val()=='Закончен') {
display_field(3900, 1);
display_field(5380, 1);
display_field(5370, 1);
}
else if (status.val()=='Возобновлен') {
display_field(3900, 1);
display_field(5380, 0);
display_field(5370, 0);
}
else {
display_field(3900, 0);
display_field(5380, 0);
display_field(5370, 0);
}
}

$(function(){
$('#value5360').on('change', function(){
status_select();
})

})

Заранее спасибо!

#178 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Февраль 2015 - 12:49

В конце кода вы только прикрепляете функцию на событие изменения поля, а можно ведь также ее и запустить сразу:

$(function(){
	// здесь прикрепляете на событие изменения
	$('#value5360').on('change', function(){
		status_select();
	})
	status_select(); // а тут просто запускаете сразу, после загрузки страницы
})

Тогда все нужные скрытия произойдут сразу.

#179 GoGPS

    Активный участник

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • Пол:Мужчина

Отправлено 04 Март 2015 - 10:02

Вопрос назрел. Поясните для тех кто в танке почему КБ до сих пор не может сделать конструктор показа скрытия полей в ЧЛП виде.
Неужели гораздо проще отвечать на одни и теже вопросы на форуме чем один раз сделать?

По примеру как это реализовано например в логике работы форматирования...

При загрузке страницы показывать поля А, В, С и не показывать поля D, E, F
Если в поле А выбрано значение A1, скрыть поле B и С, показать поле D, E. Поле F оставить скрытым
Если в поле А выбрано значение А2, скрыть поле B и D, показать поле Е. Поле F оставить скрытым

Ну и так далее.

По вычислениям тоже самое. Добавили конструктор вычислений, но он просто ниочем... :(

Сорри, если пост получился грубым

#180 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Март 2015 - 11:11

Это все прекрасно видим сами, и конструктор в планах. Более того, есть мысль в будущем объединить это с доступом, т.е. грубо говоря, это тот же условный доступ по правилу, только работающий через JS в режиме реального времени (без перезагрузки страницы). Аналогично и с вычислениями - полностью согласен что сейчас это "ниочем", поэтому в версии 3.0 планируется более логичная и простая работа с вычислениями, в том числе с использованием мастера.





Количество пользователей, читающих эту тему: 9

0 пользователей, 9 гостей, 0 анонимных