Заполните раскрывающийся список выбора на основе выбранного элемента

Asked
Viewd3676

1

Я работаю над приложением rails.

У меня есть раскрывающийся список стран. При выборе страны в раскрывающемся списке городов будут указаны города этой страны.

Я знаю, как это сделать на стороне сервера, но, если возможно, я хотел бы сделать это на стороне клиента. Я использовал помощники RJS, но у меня нет опыта работы с jQuery (не точно , даже уверен, что это такое) или другими библиотеками селекторов javascript.

Пояснение: я хотел бы сделать это полностью на стороне клиента. То есть отправьте все значения в запросе начальной страницы. Я не хочу вызывать сервер ajaxical, нажимать на базу данных, а затем возвращать эти результаты. Я бы хотел, чтобы они загрузились вместе со страницей.

4 ответов

1

Я использовал комбинацию jQuery и плагина вычислений jQuery чтобы это заработало.

1

Может быть, это поможет (простой поиск в Google помог):

http: // remysharp. com / 2007/01/20 / auto-populating-select-box-using-jquery-ajax /

  • This is for php, but should be almost identical for rails – just the server side json generation would change.

    Chris Hynes10 февраля 2009, 02:52
  • Пояснение: я хочу сделать это полностью на стороне клиента. То есть отправьте все значения в запросе начальной страницы. Я не хочу вызывать сервер аяксически, обращаться к базе данных и возвращать эти результаты. Я бы хотел, чтобы они загрузились вместе со страницей.

    [Впервые в SO: это правильный способ ответа?]

    wesgarrison11 февраля 2009, 06:40
0

Я рекомендую вам использовать для этого jQuery. Но вам нужно посмотреть документацию по jquery, а затем посмотреть jQuery ajax api

-2

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

  • Мой список не такой уж и длинный, уж точно не более чем список стран и всех городов в этих странах. Я бы не хотел обращаться к серверу для поиска того, что можно было бы отправить с начальным запросом страницы.

    wesgarrison11 февраля 2009, 06:29