Javascript 如何以名称/值对的形式从单个jQuery TokenInput提交多个值

Javascript 如何以名称/值对的形式从单个jQuery TokenInput提交多个值,javascript,jquery,jquery-tokeninput,Javascript,Jquery,Jquery Tokeninput,我正试图找出一些超出我能力范围的东西,所以请容忍我 我想做的是让用户填写一份档案,允许他们从Livesearch输入中选择最多四个城市。然后我想分别使用这些城市值,从存储在数据库中到作为url参数传递 我如何让它们脱离似乎是逗号分隔的值字符串,并给它们自己的名称 例如 如果他们选择了纽约、芝加哥、迈阿密和达拉斯,那么我得到了 <input type="text" id="Locations" name="Locations" value="New York,Chicago,Miami,Da

我正试图找出一些超出我能力范围的东西,所以请容忍我

我想做的是让用户填写一份档案,允许他们从Livesearch输入中选择最多四个城市。然后我想分别使用这些城市值,从存储在数据库中到作为url参数传递

我如何让它们脱离似乎是逗号分隔的值字符串,并给它们自己的名称

例如

如果他们选择了纽约、芝加哥、迈阿密和达拉斯,那么我得到了

<input type="text" id="Locations" name="Locations" value="New York,Chicago,Miami,Dallas">
剧本

<input type="text" id="Locations" name="Locations" />
<button type="submit" class="btn">Submit</button>    

<script type="text/javascript">
$(document).ready(function() {
$("#Locations").tokenInput([    
<?php include 'city-list.php'; ?>
], {
tokenLimit:4    
});
});
</script>

一切都正常,我只需要在提交表单时分离这些值,我想可能是隐藏字段。我到处找了找,就是找不到任何有用的东西。任何事情都会很棒。

您可以使用tokenValue参数实现这一点,该参数可以通过一个函数传递

从技术角度来看,我建议使用包含您要发送的信息。我不知道以后你在用它做什么,你可以根据需要调整这个例子

试着这样做:

<script type="text/javascript">
$(document).ready(function() {
$("#Locations").tokenInput([    
<?php include 'city-list.php'; ?>
], {
tokenLimit:4,    

tokenValue: function(param, el){
                var token = {   "name" : //Do something clever here to generate the names you want. You can get the city name of the token under param.name.
                                "value" : param.name,
                            };
                return JSON.stringify(token);
                }

});
});
</script>

注意:我不完全清楚你想用什么值来表示你的“名字”。希望您可以适当地修改此示例

我知道这很古老,但我不喜欢看到没有答案的问题

似乎OP只是想在提交表单时分隔逗号分隔的字符串

您可以在PHP脚本中通过将字符串分解为数组来实现这一点

$cityArray = explode(',', $cityString); 
这将把这些值分离成一个PHP数组,然后您可以随意使用它

$cityArray = explode(',', $cityString);