【问题标题】:jQuery UI autocomplete after AJAX <select>AJAX <select> 之后的 jQuery UI 自动完成
【发布时间】:2013-10-29 01:13:42
【问题描述】:

我选择一个选项后遇到问题

<select name="opcoes" onchange="showInfo(this.value)">
<option value="1">one</option>
<option value="2">two</option>
</select>

我通过这个发送一个选项值

function showInfo(str)
{
if (str=="")
  {
  document.getElementById("fields").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("fields").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","/php/search/getRow.php?id="+str,true);
xmlhttp.send();
}

这为我的 getRow.php 提供了 ID,以便从数据库中显示一个带有输入的表,以便人们可以更改他们的值,现在我有两个需要 jQuery-UI 自动完成的字段,所以我有这个 javascript,但它不起作用。

这是从 getRow.php 生成的代码

<input type="text" name="editname" id="namesearch" value="one">
<input type="text" name="editname" id="modelsearch" value="wfmq015">

这是我的自动完成...

$(function() {

    //autocomplete
    $("#namesearch").autocomplete({
        source: "/js/namer.php",
        minLength: 0
    });    

    $("#modelsearch").autocomplete({
        source: "/js/modeler.php",
        minLength: 1
    });              

});

我认为我的问题是 javascript 没有及时捕获 id,因为它是一个 ajax 请求......有人可以帮我吗?

Javascript 被放置在调用 ajax 以获取更多元素的主页中...

【问题讨论】:

    标签: javascript php jquery ajax autocomplete


    【解决方案1】:

    哎呀。看起来您编写了自己的 AJAX 调用。让我们使用 jQuery 来代替。省得自己头疼

    function showInfo(str) {
        $.get("/php/search/getRow.php?id=" + str, function(html) {
            $("#fields").html(html);
        });
    }
    

    现在,对于您的第二个问题,问题是您正在使用 AJAX 加载您的字段,但在加载页面时正在实例化自动完成。所以我会将它们放入一个函数并将其添加到您的 AJAX 回调中

    function loadAuto() {
        $("#namesearch").autocomplete({
            source: "/js/namer.php",
            minLength: 0
        });    
    
        $("#modelsearch").autocomplete({
            source: "/js/modeler.php",
            minLength: 1
        });
    }
    function showInfo(str) {
        $.get("/php/search/getRow.php?id=" + str, function(html) {
            $("#fields").html(html);
            loadAuto();
        });
    }
    

    【讨论】:

    • 抽根烟准备实施,我会在 10 分钟内通知您,非常感谢:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 2016-11-16
    • 1970-01-01
    • 2013-08-28
    • 2012-08-04
    • 2014-10-09
    • 2011-07-23
    相关资源
    最近更新 更多