试图让我的输入框 [type='text'] 在页面加载时重新调整其内容的大小。使用此代码,他们有效地重新调整了 焦点 的大小。
$(document).ready(function () { $("input[type='text']").bind('focus', function () { $(this).attr("size", $(this).val().length ); });});
我曾尝试为不同的事件(例如“加载”和“准备”)交换“焦点”,但无济于事。请记住,我正在寻找轻量级和快速的东西,它将在页面加载时将所有输入 [type='text'] 框的大小重新调整为它们的内容。

JSFIDDLE

解决方案

我最终使用 Thom's 答案作为解决方案,但后来我意识到我还希望输入框在输入文本时展开。所以我结合了我之前的内容和 Thom 的答案来提供这两个功能。我还添加了 css 以确保它不会超出页面大小。这是我的最终代码:

HTML <input type="text" value="resized onload and when typing"/>
jQuery $(document).ready(function () { $("input[type='text']" ).each(function( index ) { $(this).attr("size", $(this).val().length + 5 ); }); $("input[type='text']").bind('keyup', function () { $(this).attr("size", $(this).val().length + 5); });});
CSS input[type="text"]{ max-width:100%;}
JSFIDDLE

最佳答案

在 dom 就绪时循环遍历它们:

jQuery(document).ready(function($)
{
    $("input[type='text']").each(function()
    {
        $(this).attr("size", $(this).val().length);
    });
});

Fiddle

10-06 07:48
查看更多