У меня есть динамически сгенерированная форма, которую я получаю от асинхронного вызова AJAX, и у меня есть некоторые настройки, предоставляемые в объекте JSON. Я хочу, чтобы предназначаться одно поле специально с JQuery, так что я загрузить данные в формате JSON в переменную JS для работы с ним:Ориентация элемента с jQuery в зависимости от данных JSON
var jsonData = {{response.write(session.j_jsondata, escape=False)}};
/*
I'm using Web2Py, so the part between the double curly braces is equal to:
{'fields': [{'required': 'true', 'type': 'mtext', 'name': 'desc'}]}
*/
Данные получает правильно загружены в переменную, а затем, когда я хочу предназначаться что-то с имя от jsonData.fields [somenumber] .name он не работает .. Я пробовал так:
jQuery("form [name="+jsonData['fields'][i]['name']+"]")
я не получаю сообщение об ошибке. Любые идеи, почему он не нацелен на ожидаемый элемент? Благодаря!
Редактировать: Я попытался немного изменить структуру. Вместо того чтобы использовать имя, которое я выбрал ID (я обновил вид шаблона, а OFC) и переключился на
jQuery("#"+jsonData['fields'][i]['name'])
, но до сих пор нет сигар. Вероятно, у него есть некоторые проблемы с тем фактом, что поле генерируется после вызова AJAX, но это более странно, потому что сценарий вызывается после создания формы. Итак, последнее, что происходит, это выполнение этого скрипта, который нацелен на элемент формы, но он не работает. Волшебство.
Имеет ли значение 'i' правильное значение? Поскольку вы не знаете (я полагаю), правильно ли генерируется селектор, установите точку останова и ожидайте переменные. Чтобы узнать, как это сделать (если вы этого не сделаете), ознакомьтесь с http://www.netmagazine.com/tutorials/javascript-debugging-beginners. –
@FelixKling да, мы можем сказать, что i = 0, это не проблема - все работает, когда я использую определенный идентификатор элемента - проблема в jQuery ("form [name =" + jsonData ['fields'] [ i] ['name'] + "]"), но я не знаю, где :( – Dropout
Как я уже сказал, отладка! Мы не можем запускать код, поэтому мы не можем сделать это для вас. Вызовите 'console.log (" form [name = "+ jsonData ['fields'] [i] ['name'] +"] ")' непосредственно перед выбором и посмотреть, что такое результат. Правильно ли селектор? И выполняете ли вы этот вызов, когда форма существует (поскольку она загружается через Ajax)? –