1

我有一个从异步 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(我也更新了模板视图 ofc)并切换到

jQuery("#"+jsonData['fields'][i]['name'])

但仍然没有雪茄。在 AJAX 调用之后生成该字段这一事实可能存在一些问题,但这很奇怪,因为脚本是在生成表单之后调用的。所以最后发生的事情是执行这个以表单元素为目标的脚本,但它不起作用。巫术。

4

2 回答 2

2

也许是因为缺少属性选择器的引号。试试这个:

$('form [name="'+jsonData['fields'][i]['name']+'"]')
于 2013-02-26T10:44:40.130 回答
2

在本地网页上进行测试后,我注意到表单和左方括号之间不能有空格,因此您的选择器应为:

jQuery("form[name="+jsonData['fields'][i]['name']+"]")

干杯,

特伦斯。

于 2013-02-26T10:46:03.013 回答