1

我正在尝试预先填充JQuery 令牌输入

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

这是我认为它应该工作的两种方式之间的区别:

$('#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是一个字符串,而在第二种方法中,它是一个数组对象。客观化第一个应该有效:

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

第一种方法传递的是 JSON 字符串,而不是第二种方法中的有形 JS 对象。

您首先需要解析 JSON。这可以在 ECMA5 中本地完成,或者对于较旧的浏览器,可以通过第三方支持完成。

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