2011-05-29 15 views
1

我使用James Smith的优秀tokenized input插件为各种搜索框。 (PHP后端。)我试图预先填充输入,但只有一些时间 - 例如,如果用户已经通过我的URL一个参数。jQuery函数初始化中的条件参数?

正常初始化:

$("#tokenized").tokenInput("http://www.my.url/index.php", { 
theme: "facebook", 
}); 

如期望的那样,这将启动我一个空白框,一切都很好。

使用漂亮的预填充paramater:

$("#tokenized").tokenInput("http://www.my.url/index.php", { 
theme: "facebook", 
prePopulate: [<?php echo json_encode($initialValue); ?>] 
}); 

$初值是 '身份证' 和 '名' 的数组。当它被设置成某种东西时,这也很有用。但那是我的问题 - 只有一些时间会被设置。我试着发送一个零元素的数组以及一个空值的数组。将数组设置为null会产生预期的未捕获异常。该框拒绝不预先填充,如果它是其中之一 - 创建一个条目'未定义'或'{空间}'。作为上面的第一个例子,我希望它是空的。

如何告诉我的页面只在预设初始值时进行预填充?我可以做一些if()条件内联到初始化?

此外,jQuery初学者在这里 - 如上,仍然使用'PHP回声'来获得我的价值。有没有更好的办法?

谢谢!

+1

只是一个通知,在第一个例子中删除尾随',',因为它会窒息IE。 – 2011-05-29 13:50:33

回答

1

echo非常好。试试这个:

$("#tokenized").tokenInput("http://www.my.url/index.php", { 
theme: "facebook" 
<?php if($initialValue){ ?>, prePopulate: [<?php echo json_encode($initialValue); ?>]<?php } ?> 
}); 

它只有initialValue设置添加prePopulate参数。

+0

这是完美的。谢谢! – Ryan 2011-05-29 15:09:49