jQuery заполняет раскрывающиеся опции, основанные на другой раскрывающейся опции, используя Javascript Object Literal

Я строю список выбора для пользователей на основе года и марки (производителя) автомобиля, который они выбирают.Вместо создания всех опций выбора и выбора, а затем их отображения и скрытия, я хотел бы только заполнить поле выбора и опции литералом объекта javascript, который соотносится с производителем транспортного средства.То есть, если они выбирают этого производителя, заполняют следующий выпадающий список этими автомобилями и при замене заменяют те, которые соответствуют новому производителю, который был изменен.Вот что у меня так далеко:Поле выбора:Это заполняется в литерале объекта:Используя этот скрипт:Он работает по мере необходимости, и у меня есть дополнительный, чтобы заполнить другие выпадающие списки.Но, как уже упоминалось выше, я бы хотел, чтобы функция on change изменяла заполнение одного поля выбора, а не показывала и скрывала каждое из них.Я пробовал это, но это сломало все:Если у кого-то есть идеи, пожалуйста, дайте мне знать.Вот функциональная скрипка:DAS FIDDLE
4 голоса | спросил isaac weathers 4 FebruaryEurope/MoscowbTue, 04 Feb 2014 23:15:42 +0400000000pmTue, 04 Feb 2014 23:15:42 +040014 2014, 23:15:42

1 ответ


0
Проблемы с вашей скрипкой:У вас есть много функций ---- +: = 0 =: + ---- , но вам нужна только одна - вверху кода.Вы должны определить свои переменные ---- +: = 1 =: + ---- , ---- +: = 2 =: + ---- и ---- +: = 3 =: + -- вверху вашего кода, чтобы остальная часть документа могла их использовать.Вместо того, чтобы объявлять 3 версии переменной ---- +: = 4 =: + ---- , сделайте 3 версии - специфичные для каждого поля ---- +: = 5 =: + ---- .- как ---- +: = 6 =: + ---- , ---- +: = 7 =: + ---- и ---- +: = 8 =: + ---- иличто-то.В jQuery, который вы пытаетесь реализовать, ---- +: = 9 =: + ---- получает идентификационный номер, а не имена производителей.Чтобы получить имена, вы должны сделать что-то вроде ---- +: = 10 =: + ---- .Это получает текст в выбранной опции вашего ---- +: = 11 =: + ---- .Если вы сделаете это таким образом, jQuery, который вы хотите добавить, может выглядеть примерно так:Переменные ---- +: = 13 =: + ---- и ---- +: = 14 =: + ---- созданы так, как они были у вас ранее.Это предполагает, что вы хотите включить эти поля выбора в ваш окончательный дизайн.Вот скрипка: нажмите здесь .Редактировать:Однако вот рефакторинг вашего кода, который может быть полезен:Во-первых, вы можете упростить свой список типов моделей JSON до этого:Это обеспечивает хороший простой способ добавить все опции с помощью функции, подобной этой:И если вы реализуете оба из них, ваш новый вызов jQuery может выглядеть так:Вот рабочая скрипка для этого рефакторинга: Нажмите здесь .Который выглядит довольно чисто.Дайте мне знать, если вы ищете что-то еще или у вас есть вопросы!
ответил Blundering Philosopher 8 FebruaryEurope/MoscowbSat, 08 Feb 2014 05:27:05 +0400000000amSat, 08 Feb 2014 05:27:05 +040014 2014, 05:27:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132