Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 未定义函数初始化taginput引导3_Javascript_Jquery_Twitter Bootstrap_Tags - Fatal编程技术网

Javascript 未定义函数初始化taginput引导3

Javascript 未定义函数初始化taginput引导3,javascript,jquery,twitter-bootstrap,tags,Javascript,Jquery,Twitter Bootstrap,Tags,我试图实现bootstrap 3,但当我尝试对其进行序列化时,它会给我一个错误uncaughttypeerror:object的属性“undefined”不是一个函数 下面是我如何调用脚本的 <script src='<?php echo base_url() ?>resources/js/jquery-1.7.2.min.js' type='text/javascript'></script> <script src='<?php echo b

我试图实现bootstrap 3,但当我尝试对其进行序列化时,它会给我一个错误
uncaughttypeerror:object的属性“undefined”不是一个函数

下面是我如何调用脚本的

<script src='<?php echo base_url() ?>resources/js/jquery-1.7.2.min.js' type='text/javascript'></script>

<script src='<?php echo base_url() ?>resources/js/bootstrap.js' type='text/javascript'></script>

<script src='<?php echo base_url() ?>resources/js/bootstrap-tagsinput.js' type='text/javascript'></script>

<script> $('.tagplayer').tagsinput();</script>

我也遇到了同样的问题。可能作者在修改后忘记了测试。
打开bootstrap-tagsinput.js,在最后一行可以看到以下代码

   $(function() {
       $("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput();
   });
如您所见,在这个js代码中,调用了
tagsinput()
函数。 因此,在代码中包括对
tagsinput()
的调用,有两个对
tagsinput()
的调用

因此,在第357行,注册
tagsinput()
函数作为jquery插件, 初始化失败

要解决这个问题,请注释上面的代码。 (但也许你可以使用一些功能,但并不重要


无论如何,您还需要包括
引导标记put.css

请在GitHub上查看此问题:

帮助我的变通方法:

<input type="text" id="tags">
<script>
    var tags = $('#tags')
    tags.tagsinput();

    tags.tagsinput('input').typeahead({
      prefetch: 'prefetch.json'
    }).bind('typeahead:selected', $.proxy(function (obj, datum) {
      tags.tagsinput('add', datum.value);
      tags.tagsinput('input').typeahead('setQuery', '');
    }, $('input')));
</script>

变量标记=$(“#标记”)
tags.tagsinput();
tags.tagsinput('input').typeahead({
预回迁:“prefetch.json”
}).bind('typeahead:selected',$.proxy(函数(obj,数据){
tags.tagsinput('add',datum.value);
tags.tagsinput('input').typeahead('setQuery','');
}美元("输入"),;

我在选择正确的插件时也遇到了问题。最后,我自己实现了taginput,这并不难。 代码:

HTML:

<p>Tags : </p><input type="text" name="irrelevant" id="tags" placeholder="add tag">


基本上,您只需检查是否按下了键以及条目是否正确格式化,并相应地在条目之前添加标签,这些标签只是按钮。仅使用纯JS。

如果您要手动初始化taginput,而不是注释掉功能,我建议从输入中删除数据角色。
<p>Tags : </p><input type="text" name="irrelevant" id="tags" placeholder="add tag">
var id=1;
function remove(id) {
    var element = document.getElementById(id);
    element.parentNode.removeChild(element);
}

function addTag(e,name) {
    if (!e) e = window.event;
    var keyCode = e.keyCode || e.which;
    var entry=document.getElementById(name);
    entry.value=entry.value.toLowerCase();
    if (keyCode == '8' && entry.value.length==0) {
        if (entry.previousSibling.className=="btn btn-secondary margin") {
            entry.previousSibling.parentNode.removeChild(entry.previousSibling)
        }
        return;
    } 
    if (keyCode != '13' || !/[a-z]$/.test(entry.value) || document.getElementById(name+"_"+entry.value) != null) {
        return;
    }
    var id;
    var btn = document.createElement("button");
    var t = document.createTextNode(entry.value); 
    btn.appendChild(t);
    btn.setAttribute("id",name+"_"+entry.value)
    btn.className="btn btn-secondary margin"
    btn.setAttribute("onclick","remove('"+name+"_"+entry.value+"')")

    var insertedNode = entry.parentNode.insertBefore(btn, entry);
    entry.value=""
}
document.getElementById('tags').onkeypress=function(e) { addTag(e,"tags"); }