将元数据添加到 jQuery UI 自动完成

发布于 2024-11-04 07:04:18 字数 308 浏览 0 评论 0原文

我正在编写一个消息应用程序,它在“发送”字段中使用 jQuery UI 自动完成功能。我一切正常,但我需要将一些元数据(例如用户 ID)附加到项目上。

选择该项目后,我计划添加带有用户 ID 的隐藏输入,如下所示: 为每个选定的用户添加一个。然后,当提交表单时,这些数据将被发送到 php 脚本,我可以在其中向每个用户发送消息。

我只是想知道这样的事情是否可能,如果不可能,解决它的最佳方法是什么?或者,有没有比我想象的更好的方法?

谢谢,

I'm writing a messaging application that uses jQuery UI autocomplete in the "send" field. I have it all working fine, but I need to attach bits of metadata, like a user id, to the items.

When the item is selected, I plan on adding a hidden input with the user id, like so: <input type="hidden" name="to[]" value="4" /> Adding one for each user selected. Then when the form is submitted, this data will be sent through to a php script, where I can send messages to each user.

I'm just wondering if anything like this is possible, if not, what might be the best way to get around it? Or, is there a better way of doing it than what I'm thinking?

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的背包 2024-11-11 07:04:18

你走在正确的轨道上!

自动完成小部件是为了处理此类情况而构建的。只要 source 中的项目具有 value 属性(以及可选的 label 属性),小部件就会正确呈现选项。

所以你有两个选择。您可以提供 labelvalue 属性,并在 上使用 value 属性创建隐藏的 input 元素。 >选择事件,或使用您自己的属性。通过示例更容易看出:

var users = [
    { label: 'Jon', value: 1 },
    { label: 'Jeff', value: 2 },
    { label: 'Marc', value: 3 },
    { label: 'Josh', value: 4 },
    { label: 'Andrew', value: 5}
];

$("#autocomplete").autocomplete({
    source: users,
    select: function(event, ui) {
        $("body").append("<input type='text' value='" + ui.item.value + "'/>");
    }
});

这是一个工作示例: http://jsfiddle.net/EYQLV/1/< /a>

如果源中的每个项目都包含该属性,您就可以轻松使用 ui.item.id

You are on the right track!

The autocomplete widget is built to handle situations like this. As long as items in your source have a value property (and optionally a label property), the widget will render the options correctly.

So you have two options. You can provide the label and value property and create your hidden input elements with the value property upon the select event, or use your own attribute. It's easier to see with an example:

var users = [
    { label: 'Jon', value: 1 },
    { label: 'Jeff', value: 2 },
    { label: 'Marc', value: 3 },
    { label: 'Josh', value: 4 },
    { label: 'Andrew', value: 5}
];

$("#autocomplete").autocomplete({
    source: users,
    select: function(event, ui) {
        $("body").append("<input type='text' value='" + ui.item.value + "'/>");
    }
});

Here's a working example: http://jsfiddle.net/EYQLV/1/

You could just as easily use ui.item.id if each item in your source contained that property.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文