2011-05-29 17 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