【问题标题】:How can I adjust the width of the Input field based on the Placeholder text?如何根据占位符文本调整输入字段的宽度?
【发布时间】:2018-11-07 17:04:55
【问题描述】:

我有一个固定宽度的输入字段。 (例如:200px)和占位符文本有更多的字母。

如何根据占位符文本/宽度动态更改输入字段的宽度?

【问题讨论】:

标签: html css css-transitions


【解决方案1】:

size 设置为input

var inputs = document.getElementsByTagName('input');
for(i=0; i<inputs.length; i++){
    inputs[i].setAttribute('size',inputs[i].getAttribute('placeholder').length);
}
&lt;input placeholder="I am a long text...I am a long text...I am a long text "/&gt;

【讨论】:

  • @Renuka CE 告诉我更多帮助
【解决方案2】:

这里是如何做到这一点的链接 - https://jsfiddle.net/4s03razg/

<div>
    <script>
        var prevLen = 50;
        window.resizeBox = function() {
            var elem = document.getElementById("resizable-input");
            if(elem.value && elem.value.length > 5) {
                prevLen += 10;
                elem.style.width = prevLen + "px";      
            }
        };

        function initializeBox() {
            var elem = document.getElementById("resizable-input");
            elem.style.width = prevLen + "px";
        }
        initializeBox();
    </script>
    <input id="resizable-input" type="text" onkeypress="resizeBox()"/>
</div>

这只是一个例子。您必须使用正确的数字和事件来触发调整大小。我认为,您最好在通过事件的方法调用中使用“this”来获取元素。

【讨论】:

    【解决方案3】:

    您可以使用 javascript 或 jquery 来执行此操作,获取占位符的长度,然后将其分配给输入大小; JS 代码:

    input.setAttribute('size',input.getAttribute('placeholder').length);
    

    或者, jQuery:

    $("input[placeholder]").each(function () {
            $(this).attr('size', $(this).attr('placeholder').length);
        });
    

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 2013-06-22
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 2017-04-18
      相关资源
      最近更新 更多