Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery自动完成项单击重定向到另一个页面_Javascript_Jquery_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

Javascript 如何使用jQuery自动完成项单击重定向到另一个页面

Javascript 如何使用jQuery自动完成项单击重定向到另一个页面,javascript,jquery,jquery-ui,jquery-ui-autocomplete,Javascript,Jquery,Jquery Ui,Jquery Ui Autocomplete,我被这个问题难住了,我已经花了好几个小时,试图让jQuery autocomplete在建议列表中单击一个项目时转到站点上的另一个页面 有人知道怎么做吗?这是我的密码: $(':input[data-autocomplete]').autocomplete({ source: $(':input[data-autocomplete]').attr("data-autocomplete"), delay: 0, select: function (event, item)

我被这个问题难住了,我已经花了好几个小时,试图让jQuery autocomplete在建议列表中单击一个项目时转到站点上的另一个页面

有人知道怎么做吗?这是我的密码:

$(':input[data-autocomplete]').autocomplete({
    source: $(':input[data-autocomplete]').attr("data-autocomplete"),
    delay: 0,
    select: function (event, item) {
        //window.location.replace("http://www.example.com/Profile/Details/1");// Works but totally unacceptable, browser history lost etc.. 
        //alert("Item Clicked"); //Fires Ok
    }
}).data("autocomplete")._renderItem = function (ul, item) {
    var MyHtml = '<a id="ItemUrl" href="/Profile/Details/' + item.PartyId + '"' + ">" +
                     "<div class='ac' >" +
                     "<div class='ac_img_wrap' >" +
                     '<img src="../../uploads/' + item.imageUrl + '.jpg"' + 'width="40" height="40" />' +
                     "</div>" +
                     "<div class='ac_mid' >" +
                     "<div class='ac_name' >" + item.value + "</div>" +
                     "<div class='ac_info' >" + item.info + " PartyId :" + item.PartyId + "</div>" +
                     "</div>" +
                     "</div>" +
                     "</a>";
    return $("<li></li>").data("item.autocomplete", item).append(MyHtml).appendTo(ul);
};
问题是,当我单击链接时,什么也没有发生,我尝试使用select事件,但项为空,因此无法获取
item.PartyId
以强制手动跳转


如何使单击事件正常工作?

回答它可能会很晚,但我使用以下代码完成了此操作:

$(document).ready(function() {
    $('#txtSearch').autocomplete({
        minLength: 3,
        source: "handlers/SearchAutoComplete.ashx?loc=" + $('#hfLocation').val(),
        select: function(event, ui) {
            doSearch(ui.item.label, ui.item.city);
        }
    });
});

function doSearch(term, location) {
    window.location.href = 'Search.aspx?q=' + term + '&loc=' + location;
}

经过几天的头部撞击(不是摩辛式的),我想到了以下几点:

$(':input[data-autocomplete]').autocomplete({
    source: $(':input[data-autocomplete]').attr("data-autocomplete"),
    delay: 0,
    select: function (event, ui) {
        var q = ui.item.PartyId;
        if (q != "") {
            $('#hidPID').val(q);
            $('#ac_submit').trigger('click');
        }
    }).data("autocomplete")._renderItem // -->>> the rest of the code same as above
问题是(event,item)应该是(event,ui),要获取项的值,您可以使用ui.item.PartyId(在我的情况下,PartyId在上面的源代码中声明)

因此,在我的原始表单中,我有两个html输入1-hidden ID,2-Submit&正如您在上面的select:函数中看到的,我设置了ID并触发提交(因此,现在用户只选择一个项目,然后转到执行重定向视图的控制器&而不是此代码,因为在本例中使用位置似乎不正确)


我希望这可以节省一些时间,因为jQuery自动完成文档不会太清楚。

为什么不使用
location.href
所以使用window.location.href而不是window.location.replace.Ok只是尝试了一下,location.href不起作用,它几乎就像自动完成停止它一样,因为警报消息也不会发出。你能在JSFIDLE上发布一个例子吗?以前从未实际使用过它,但会尝试一下,谢谢你的耐心。
$(':input[data-autocomplete]').autocomplete({
    source: $(':input[data-autocomplete]').attr("data-autocomplete"),
    delay: 0,
    select: function (event, ui) {
        var q = ui.item.PartyId;
        if (q != "") {
            $('#hidPID').val(q);
            $('#ac_submit').trigger('click');
        }
    }).data("autocomplete")._renderItem // -->>> the rest of the code same as above