我正在尝试预先填充JQuery Token Input。
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
函数吗?
答案 0 :(得分:3)
在第一种方法中,assignUserJson
是一个字符串,而在第二种方法中,它是一个数组对象。客观化第一个应该有效:
$('#assignTask').tokenInput('/users/suggest', {prePopulate: JSON.parse(assignUserJson)});
答案 1 :(得分:2)
使用第一种方法,你传递一个JSON字符串,而不是你在第二种方法中的有形JS对象。
首先需要解析JSON。这可以在ECMA5中本机完成,或者对于较旧的浏览器,可以通过第三方支持完成。
$('#assignTask').tokenInput('/users/suggest', {prePopulate: JSON.parse(assignUserJson)}); // doesn't work