【问题标题】:Conditional parameter in jQuery function initialization?jQuery函数初始化中的条件参数?
【发布时间】:2011-09-04 07:31:59
【问题描述】:

我正在使用 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 会产生预期的未捕获异常。如果它是其中之一,则该框拒绝不预填充 - 为“未定义”或“{space}”创建一个条目。我希望它是空的,就像上面的第一个例子一样。

如果设置了初始值,如何告诉我的页面仅预填充?我可以在初始化中内嵌某种 if() 条件吗?

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

谢谢!

【问题讨论】:

  • 只是一个通知,在第一个示例中删除尾随的,,因为它会阻塞 IE。

标签: php jquery json initialization conditional


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多