1

JQuery トークン入力を事前設定しようとしています。

var assignUserJson=$('#assignUserJson').val();
console.log(assignUserJson); //[{"id":"1","name":"Andrew"},{"id":"3","name":"John"}]

これが動作するはずだと私が想定した2つの方法の違いは次のとおりです。

$('#assignTask').tokenInput('/users/suggest', {prePopulate: assignUserJson}); // doesn't work  

そして、これは機能します:

$('#assignTask').tokenInput('/users/suggest', {prePopulate: [{"id":"1","name":"Andrew"},{"id":"3","name":"John"}]}); // works  

何故ですか?非表示の入力フィールドから値を取得して関数に渡すことはできませんtokenInputか?

4

2 に答える 2

3

最初のメソッドでassignUserJsonは文字列ですが、2 番目のメソッドでは配列オブジェクトです。最初のものを客観化することはうまくいくはずです:

$('#assignTask').tokenInput('/users/suggest', {prePopulate: JSON.parse(assignUserJson)});
于 2012-07-02T12:46:46.163 に答える
2

最初のメソッドでは、2 番目のメソッドのように具体的な JS オブジェクトではなく、JSON 文字列を渡します。

最初に JSON を解析する必要があります。これは ECMA5 でネイティブに実行できますが、古いブラウザーの場合はサードパーティのサポートを介して実行できます。

$('#assignTask').tokenInput('/users/suggest', {prePopulate: JSON.parse(assignUserJson)}); // doesn't work  
于 2012-07-02T12:47:37.277 に答える