我有一个动态生成的表单,我从异步AJAX调用获得,我在JSON对象中提供了一些设置。我想专门用jQuery来定位一个字段,所以我将JSON数据加载到JS变量来处理它:
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(我更新了模板视图)并切换到了
jQuery("#"+jsonData['fields'][i]['name'])
但仍然没有雪茄。它可能有一些问题,因为该字段是在AJAX调用之后生成的,但这很奇怪,因为脚本在生成表单后被调用。所以最后发生的事情就是执行这个以脚本为目标的脚本,但它不起作用。魔法。
答案 0 :(得分:2)
可能是因为缺少属性选择器的引用。试试这个:
$('form [name="'+jsonData['fields'][i]['name']+'"]')
答案 1 :(得分:2)
在本地网页上测试后,我发现表单和方括号之间没有空格,因此您的选择器应显示为:
jQuery("form[name="+jsonData['fields'][i]['name']+"]")
干杯,
特伦斯。