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


Привязать к стандартному полю Кб автозаполнение


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

#1 aleks.goodcolor

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

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

Отправлено 26 Декабрь 2014 - 17:15

Здравствуйте подскажите пожалуйста каким образом можно привязать autocomplete.js к полю.
Есть такая задача: пользователь вбивает наименование и ему автоматически подтягиваются снизу подходящие значения. В доп. действии данный функционал у меня работает но как его встроить в обычное поле при стандартном добавлении?

#2 CbCoder

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

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

Отправлено 28 Декабрь 2014 - 15:39

Есть же в настройках любого поля возможность прикрепить к нему js код.

#3 aleks.goodcolor

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

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

Отправлено 13 Январь 2015 - 11:39

Как правильно формировать код js в этом поле? Нужны теги <script> ?

#4 aleks.goodcolor

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

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

Отправлено 13 Январь 2015 - 16:52

Я хочу вставить вот такой код - но я так понимаю что нельзя обычные вычисления запихнуть в это поле

function onchange_{$one_field.id}()
{
$res3 = data_select(351,"`status`=0 AND `f11310`!=",$ID," AND `f11320`!=",$ID," AND `f11330`!=",$ID," AND `f11340`!=",$ID," AND `f11350`!=",$ID," AND `f11360`!=",$ID," AND `f11370`!=",$ID," AND `f11380`!=",$ID," AND `f11390`!=",$ID," AND `f11400`!=",$ID," ");
  While($row3 = sql_fetch_assoc($res3))
  {
    $list2 .= "'".$row3['f5251']."',";
  }
//Код первой вкладки (стандартное использование)
   $("#value{$one_field.id}").autocomplete({source:[$list2]})
   $("#value{$one_field.id}").autocomplete({minLength:2})
}

addHandler(document.getElementById("value{$one_field.id}"), "onchange", onchange_{$one_field.id});


#5 CbCoder

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

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

Отправлено 13 Январь 2015 - 16:59

Разумеется нельзя, "вычисления" - это php код на строне сервера, js же выполняется на стороне браузера, не говоря о том что это другой язык. Тут либо используется ajax для подгрузки js-ом данных с сервера (сложный вариант, единственный в случае динамической подгрузки), либо скрытое вычисляемое поле, из которого js берет нужные данные (более простой вариант). В вашем случае пойдет и второй, т.к. list2 можно заранее сформировать, как я понял.

#6 aleks.goodcolor

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

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

Отправлено 13 Январь 2015 - 17:07

Понятно, а как обратиться к значению другого поля? например я сделаю
var text = document.getElementById("value{$one_field.id}")
только мне вместо $one_field.id нужно реальный id поля найти?

#7 CbCoder

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

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

Отправлено 13 Январь 2015 - 18:00

Да, именно. ID поля используется стандартный, такой же как и в вычислениях, только не из переменной, а конкретное число. И еще вы свойство value пропустили:

var text = document.getElementById("value123").value;


#8 aleks.goodcolor

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

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

Отправлено 14 Январь 2015 - 09:06

Спасибо за помощь - буду пробовать.





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

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