jQuery函数初始化中的条件参数?

时间:2011-05-29 13:45:15

标签: php jquery json initialization conditional

我正在使用James Smith的优秀tokenized input插件来搜索各种搜索框。 (PHP后端。)我试图预先填充输入,但只是在某些时候 - 例如,如果用户已经通过我的URL参数。

正常初始化:

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

根据需要,这启动了一个空白框,一切都很好。

使用漂亮的prePopulate参数:

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

$ initialValue是一个带有'id'和'name'的数组。当它被设置为某种东西时,这也很有效。但那是我的问题 - 只有部分时间会被设定。我试过发送一个零元素数组和一个空值的数组。将数组设置为null会产生预期的未捕获异常。如果它是其中之一,则框拒绝不预填充 - 为'undefined'或'{space}'创建条目。我希望它是空的,就像上面的第一个例子。

如果我的初始值设置了,我怎么能告诉我的页面只预先填充?我可以对初始化进行内联的if()条件吗?

此外,jQuery初学者 - 如上所述,仍然使用'php echo'来获取我的价值。有没有更好的办法?

谢谢!

1 个答案:

答案 0 :(得分:1)

echo完全没问题。试试这个:

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

如果设置了prePopulate,则只会添加initialValue参数。