1

非同期AJAX呼び出しから取得する動的に生成されたフォームがあり、JSONオブジェクトでいくつかの設定が提供されています。特にjQueryで1つのフィールドをターゲットにしたいので、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呼び出しの後に生成されるという事実にはおそらくいくつかの問題がありますが、フォームが生成された後にスクリプトが呼び出されるため、それは奇妙です。したがって、最後に発生するのは、フォーム要素を対象とするこのスクリプトの実行ですが、機能しません。ソーサリー。

4

2 に答える 2

2

ローカルWebページでテストした後、フォームと開き角括弧の間にスペースを入れることができないことに気付きました。そのため、セレクターは次のように読みます。

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

乾杯、

テレンス。

于 2013-02-26T10:46:03.013 に答える
2

属性セレクターの引用符が欠落している可能性があります。これを試して:

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