我尝试过这个,但它似乎没有返回任何东西..我做错了什么?
<script type="text/javascript">
$(document).ready(function() {
$("input[type=button]").click(function () {
alert("Would submit: " + $(this).siblings("input[type=text]").val());
});
});
$(document).ready(function() {
$("#button1").click(function() {
var abc = $('#demo-input-local').tokenInput("get");
alert(abc);
alert(abc[7].name);
var inputval =$(this).siblings("input[type=text]").val();
alert("inputval " +inputval);
alert(abc[inputval].name);
$("#some-text").focusEnd();
$('#some-text').val($('#some-text').val()+' ' + inputval);
});
});
</script>
<label> Enter Phone or Email or http: </label><input type="text" id="demo-input-local" name="blah" /><input type="button" id="button1" value="Submit" />
<script type="text/javascript">
$(document).ready(function () {
$("#demo-input-local").tokenInput([
{ id: 7, name: "john.doe@uhc.com", "value": "@" , "prefix": "Email1"},
{ id: 11, name: "j.doe@uhc.com", "value": "@" ,"prefix": "Email2"},
{ id: 13, name: "nancy.doe@uhc.com", "value": "@" ,"prefix": "Email3"},
{ id: 17, name: "liz.d@uhc.com", "value": "@", "prefix": "Email4" },
{ id: 19, name: "joe.doe@uhc.com", "value": "@", "prefix": "Email5" },
{ id: 23, name: "www.C#.com", "value": "http", "prefix": "Website1" },
{ id: 29, name: "www.C.com", "value": "http", "prefix": "Website2" },
{ id: 31, name: "www.Fortran.com", "value": "http", "prefix": "Website3" },
{ id: 37, name: "www.VisualBasic.com", "value": "http", "prefix": "Website4" },
{ id: 41, name: "www.DoC.com", "value": "http", "prefix": "Website5" },
{ id: 43, name: "www.C++.com", "value": "http" , "prefix": "Website6"},
{ id: 47, name: "www.Java.com", "value": "http" , "prefix": "Website7"},
{ id: 37, name: "111-111-1111", "value": "#", "prefix": "Phone1" },
{ id: 41, name: "222-222-2222", "value": "#", "prefix": "Phone2" },
{ id: 43, name: "333-333-3333", "value": "#" , "prefix": "Phone3"},
{ id: 47, name: "555-555-5555", "value": "#" , "prefix": "Phone4"}
], {
theme: "facebook",
propertyToSearch: "value",
hintText: "Type '@' for email or 'http' for website or '#' for phone",
tokenFormatter: function (item) { return "<li><p>" + item.prefix + "</p></li>" },
resultsFormatter: function (item) { return "<li>" + item.prefix +" "+ item.name + "</li>" }
});
});
</script>
</div>
答案 0 :(得分:4)
如果您只想提醒以逗号分隔的名单,请尝试以下方法:
JavaScript的:
$(document).ready(function() {
$("input[type=button]").click(function() {
var names = [];
$(this).siblings("ul").find('li p').each(function(){
names.push($(this).html());
//names.push($(this).text());//possibly better
});
alert("Names are: " + names.join());
});
});
但是,据我所知,实际提交的值仍然是以逗号分隔的ID列表。
以上是非常原始的方法。您可以类似地循环遍历由ABC指出的.tokenInput("get");
方法返回的数组。
假设ABC所说的.tokenInput("get");
是正确的,那么这应该有效:
的javascript:
$("input[type=button]").click(function() {
var arr = $(this).siblings("input[type=text]").tokenInput("get");//Returns (we think) an array of objects
var names = [];
$.each(arr, function(i, obj){
names.push(obj.name);//build an array of just the names
});
alert("Names are: " + names.join());
});
答案 1 :(得分:3)
亲爱的为什么不使用tokenInput自己的方法来获取对象
selector.tokenInput("get");
这是从tokeninput获取所选标记数组的方法(每个项目都是{id:x,name:y}类型的对象)。 进一步
var abc = selector.tokenInput("get");
abc[0].id; // for first array element
abc[0].name