javascript - selectize.js 占位符宽度问题

标签 javascript jquery html css selectize.js

我正在使用 selectize.js用于自动完成(自动建议)功能的 jquery 库。

除占位符问题外,一切正常。

下面是我所做的代码。

HTML 代码

<input class="form-control" 
                   aria-describedby="basic-addon2"

                   name="q" 
                   id="q"
                   data-request="" 
                   data-request-success="console.log(data)" 
                   data-track-input="true" 
                   autocomplete="off" 
                   value="{{ search_value.q }}"
                   type="text"> 

JavaScript 代码

$('#q').selectize({
    plugins: ['remove_button'],
    valueField: 'address',
    labelField: 'address',
    searchField: 'address',   
    placeholder:'Search Properties by suburb, region, postcode or address',                  
    create: true,    
    render: {
        item: function(data, escape) {
            return '<div>' + escape(data.address) + '</div>';
        }

    },
    load: function(query, callback) {
        if (!query.length) return callback();
        $.ajax({
            url:  base_url + '/search-property-autocomplete',
            type: 'POST',
            dataType: 'json',
            data: {
                q: query,

            },
            error: function() {
                callback();
            },
            success: function(res) {
                console.log(res.properties);
                callback(res.properties);
            }
        });
    }
});
$(".selectize-input input[placeholder]").attr("style", "width: 100%;");

这是我加载页面时的样子。

enter image description here

它显示占位符的全文..但是当我要输入并获得提示并选择任何内容时,当我清除所有元素时,它的宽度减小并显示如下所示。

enter image description here

如我们所见,占位符文本正在剪切。

这是一个视频链接,它目前的行为如何 - http://www.screencast.com/t/B1w1TssUAelI

我尝试放置一些不起作用的事件。

谁能帮我解决这个问题?

最佳答案

好的,伙计们,最终我解决了这个问题,下面是我放入 javascript 文件中的代码。

JavaScript 代码

$('#q').selectize({
    plugins: ['remove_button'],
    valueField: 'address',
    labelField: 'address',
    searchField: 'address',                 
    create: true,    
    render: {
        item: function(data, escape) {
            return '<div>' + escape(data.address) + '</div>';
        }

    },
    onChange: function(value) {
      $(".selectize-input input[placeholder]").attr("style", "width: 100%;");
    },
    load: function(query, callback) {
        if (!query.length) return callback();
        $.ajax({
            url:  base_url + '/search-property-autocomplete',
            type: 'POST',
            dataType: 'json',
            data: {
                q: query,

            },
            error: function() {
                callback();
            },
            success: function(res) {
                console.log(res.properties);
                callback(res.properties);
            }
        });
    }
});

$(".selectize-input input[placeholder]").attr('placeholder','Search Properties by suburb, region, postcode or address');
$(".selectize-input input[placeholder]").attr("style", "width: 100%;");

正如您在上面的代码中看到的,我在其中添加了以下代码。

onChange: function(value) {
  $(".selectize-input input[placeholder]").attr("style", "width: 100%;");
},

每当我更新我的选择时,这会将宽度设置为 100%,即使我删除了所有选择,这也会起作用。

希望这对您有所帮助。

关于javascript - selectize.js 占位符宽度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45727362/

相关文章:

javascript - 使用jquery多次点击按钮问题

javascript - 为什么循环/分组在 jquery 中不能正常工作

javascript - 我想在使用alertify单击 "ok"后重新加载index.html页面

javascript - 为什么 JavaScript 中的函数 element.style.height 可能不起作用?

javascript - 使用 JQuery 从本地 url 解析 JSON

javascript - 链jQ方法

javascript - 为什么我们总是需要检查一个对象是否有一个键? - JS

javascript - 附加到提交事件的 AJAX 代码不起作用

javascript - 如何设置空值或 null 值在 Jquery 更改中不起作用

javascript - 使用 jQuery 在 Firefox 中居中一个 div