如何发送jQuery自动完成类别作为表单提交的一部分

How to send jQuery Autocomplete categories as part of the form submit?

本文关键字:表单提交 一部分 jQuery 何发送      更新时间:2023-09-26

我有jquery自动完成的类别,当一个人用鼠标点击它,它被发送到一个php页面与该值,并报告一个页面。

但是,我想要发送的类别。

这是开头部分…

    $( "#tipapp" ).catcomplete({
        delay: 0,
        source: data,
            select: function(event, ui) {
                $("input#tipapp").val(ui.item.label);
                $("#tipapp").submit();
            },
    }).data("catcomplete")._renderItem = function(ul, item) {
                return $("<li></li>").data("item.catcomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
    };

和php的提要:

    $("#tipapp").submit(function() {
        $('#output').load('resultapp.php', {value: $(this).val()}); 
    });

从我读到的,我想我可以简单地添加到php行:

$('#output').load('resultapp.php', {value: $(this).val(), cat: item.category});

但是没有运气,我也改变了。

select: function(event, ui, item) {
$("input#tipapp").cat(ui.item.category);

当然,运气不好。有大量的页面使用自动完成和表单等功能,但这是特定于类别的。

我错过了一些简单的东西吗?我可以只是做一个项目上的发现,以获得类别在php文件我正在调用,但如果它是一个简单的修复,那么它会节省一些代码和一个额外的调用数据库。

ui.item.category确实应该包含项目的类别值。问题是ui对象可能在最终submit()处理程序的作用域中未定义。

为了克服这个问题,可以在调用处理程序之前将类别值存储在输入元素的数据中,如下所示:

select: function(event, ui) {
    $("input#tipapp").val(ui.item.label).data('category',ui.item.category);
    $("#tipapp").submit();
}

然后在处理程序中,可以从输入元素的数据中检索类别值,如下所示:

$("#tipapp").submit(function() {
    $('#output').load('resultapp.php', {value: $(this).val(), cat:$(this).data('category')}); 
});