【问题标题】:Bootstrap Typeahead not working with dynamic inputsBootstrap Typeahead 不适用于动态输入
【发布时间】:2016-07-22 16:04:47
【问题描述】:

页面加载时我默认输入如下:

<input type="text" class="form-control input-sm productName" id="" placeholder="Search..." />

我使用的预输入代码是这样的

$.get('../search_product.php', function(data){
    $(".productName").typeahead({ source: data });
},'json');

默认情况下这对我的输入工作正常,但在我使用 append 添加新元素后它不再工作,我怎样才能使它对新元素工作?

我想知道如何用变量发送我在输入中输入的值,因为我现在在服务器端这样做只是一个例子

echo json_encode(array('hi', 'hi 2', 'hi 3', 'hi 4'));

我的意思是如何发送类似的参数

$query = $_GET['param'];

希望你能帮助我,谢谢。

更新:

 $('#containerProducts').append('<div class="row m-t-5">' +
                                        '<div class="col-sm-offset-2 col-sm-4"><input type="text" class="form-control input-sm productName" id="" placeholder="Search..." /></div>' +
                                '</div>'
                            );

【问题讨论】:

  • 使用prepend 添加新元素的代码在哪里?
  • @JeremyHarris 我更新了信息,当我点击“添加+”按钮时,该代码在运行的函数中

标签: php jquery twitter-bootstrap


【解决方案1】:

在 Javascript 中,当创建一个元素时,事物不会自动绑定到它。您应该将您的 typeahead 初始化隔离在它自己的函数中,然后在创建元素时调用它来初始化新元素。例如:

function initTypeahead() {
    // Should probably add code here to only grab elements that are not already initialized
    var elements = $('.productName');
    $.get('../search_product.php', function(data){
        $(elements).typeahead({ source: data });
    }, 'json');
}

然后,当您初始化页面时,您会调用它来初始化初始元素。

$(document).ready(function() {
    initTypeahead();
});

如果你添加一个新元素,你会再次调用它:

$('#containerProducts').append('<div class="row m-t-5">' +
    '<div class="col-sm-offset-2 col-sm-4"><input type="text" class="form-control input-sm productName" id="" placeholder="Search..." /></div>' +
    '</div>'
);
initTypeahead();

【讨论】:

  • 谢谢,我会尝试这个解决方案,我会告诉你这是否可行,我想知道如何获取输入的值以将其保存到变量中并使用 php 进行搜索
  • 不工作 servicios.js:43 Uncaught TypeError: $(...).typeahead is not a function 这是行 $(elements).typeahead({ source: data });
  • servicios.js 文件之前是否包含预输入?
  • 是的,它包含在该文件之前
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多