根据输入字段的字符数动态扩展输入类型“文本”的高度

2024-06-28

与下面的 JSFiddle 类似(我将其添加为书签,但不知道原始问题从哪里出现):

http://jsfiddle.net/mJMpw/6/ http://jsfiddle.net/mJMpw/6/

<input type="text" value="" placeholder="Autosize" data-autosize-input='{ "space": 10 }' />

input {
    width: 200px;
    min-width: 200px;
    max-width: 300px;
    transition: width 0.25s;    
}

有没有办法将文本字段的宽度固定为,例如仅 200px,并且具有height如果用户添加的文本多于 200 像素能够包含的内容,文本字段的大小会增长吗?如果用户需要更多空间来输入,我希望添加更多行......所以我需要height,而不是宽度,动态调整大小。

Thanks!


更新[2]:

As scrollHeight总是等于height,我们必须设置height to '1'在scrollHeight之前,那么当我们删除字符时<textarea>自动调整:

$('textarea').on('keydown', function(e){
    if(e.which == 13) {e.preventDefault();}
}).on('input', function(){
    $(this).height(1);
    var totalHeight = $(this).prop('scrollHeight') - parseInt($(this).css('padding-top')) - parseInt($(this).css('padding-bottom'));
    $(this).height(totalHeight);
});

Fiddle:

http://jsfiddle.net/mJMpw/551/ http://jsfiddle.net/mJMpw/551/

UPDATED:

正如朋友所说,<input type="text"/>没有换行符。我的建议使用<textarea> is:

$('textarea').on({input: function(){
    var totalHeight = $(this).prop('scrollHeight') - parseInt($(this).css('padding-top')) - parseInt($(this).css('padding-bottom'));
    $(this).css({'height':totalHeight});
}
});

Fiddle:

http://jsfiddle.net/mJMpw/548/ http://jsfiddle.net/mJMpw/548/

原答案:

这很丑陋,但你可以这样做:

$('input[type="text"]').on('keyup',function(){
    var text = $(this).val();
    var getWidth = $('<span class="getWidth" style="white-space:nowrap; width:auto;">' + text + '</span>').insertAfter(this);
    $(this).css({'width':getWidth.outerWidth()}).next('.getWidth').remove();
});

您必须为 .getWidth 指定相同的字体/填充属性,然后输入:

input, .getWidth {
    font-family:arial;
    font-size:12px;
    font-weight:normal;
    letter-spacing:normal;
    padding:3px;
}

Fiddle:

http://jsfiddle.net/9SMRf/ http://jsfiddle.net/9SMRf/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据输入字段的字符数动态扩展输入类型“文本”的高度 的相关文章

  • 在没有 Flash 的情况下用 HTML / js 录制音频?

    从麦克风录制音频并将 ajax 发回服务器 真的不知道如何在 Flash 中做到这一点 并希望它保持简单 目前还没有浏览器实现WHATWG 设备 API http www whatwg org specs web apps current
  • Angularjs 使用 ng-init 为 ng-model 赋值

    您好 我有以下问题 看起来很简单并且应该有效 但事实并非如此 在我的代码中我输入了
  • 在浏览器开发工具中看不到SignalR流量

    我构建了使用 SignalR 的服务器和客户端代码 该网站运行完美 但我无法在任何浏览器 chrome IE Firefox 中看到网络流量 我知道网络流量在那里 因为该网站正在运行 有没有办法在浏览器中查看 SignalR 流量 如果不是
  • 未处理的 Promise 拒绝:push.on 不是函数

    我正在使用离子2 我得到这个打字稿error当尝试设置推送通知时 我从教程中复制了此示例代码 因此预计它可以工作 我一定有什么问题 任何想法请 Unhandled Promise rejection push on is not a fun
  • td 内的文本可以随 td 一起调整大小吗? (是其高度的百分比?)

    我有一个 100 占屏幕的表格 里面有 3x3 9 个单元格 每个单元格占 33 到目前为止 一切都很好 这是一个干净 可扩展的井字棋游戏 问题在于 TD 内的文本不会随比例缩放 有没有办法说 我希望文本大小为 TD 高度的 30 或者其他
  • 将变量从一个 jsp 发送到另一个 jsp

    我有一个 JSP 文件jsp 1 jsp和另一个 JSP 文件jsp 2 jsp 我已经包括了jsp 2 jsp in jsp 1 jsp using 现在我需要某个元素上的单击事件 在该事件中 我想将字符串变量传输到包含的 jsp 中 假
  • jQuery - 页面上最宽的项目

    如何使用 jQuery 在网页上找到最宽的项目 在 css 中设置的宽度或作为属性 不会很快 但应该可以解决问题 var widest null each function if widest null widest this else i
  • ag-Grid 中的行格式

    我们需要有条件地将行文本设置为粗体 目前它仅适用于单个单元格 但我们需要在所有列单元格上应用文本粗体 应用格式设置后 isBold 列必须隐藏 删除 此列仅用于格式化 如何应用文本缩进 10px isBold 列包含真实值的第一列的 有可能
  • Javascript 或 Coffeescript 中的“Bucket Fill”算法

    我正在编写一个小coffeescript js应用程序 允许用户设计图标 16x16像素或32X32像素 该图标实际上是一个带有颜色单元的二维数组 单元格可以有颜色或为空 我希望用户能够使用 桶油漆 工具填充空白单元格 代表着 如果用户单击
  • CSS 文本渐变

    我环顾四周 找不到任何与此相关的信息 如果我有一段文本 有没有办法 也许使用 CSS3 来逐渐改变文本的颜色 因为它下降到页面 而不是渐变的方式 因为这只对单词起作用 而不是对整个文本段落起作用 所以我希望一些文本从白色开始 然后在到达段落
  • 如何在JavaFX中获得狭窄的进度条?

    正如标题所说 我需要制作一个细进度条 我用过这个 progressBar setMaxHeight 0 1 progressBar setPrefHeight 0 1 但这行不通 有人有想法吗 你必须搞乱样式才能让它变小 我真的建议看看ca
  • 与基线和文本区域垂直对齐

    我试图让标签与文本区域中第一行文本的基线对齐 天真的尝试 div style display inline block div
  • 当 JavaScript 抛出异常时不要停止它

    我正在使用 JavaScript 编写一个 Windows 边栏小工具 现在我想捕获所有 JavaScript 异常并将其记录到文本文件中 一个问题是 当任何一行抛出异常时 下一行将不会被执行 是否可以自动捕获异常 以便执行以下 JavaS
  • 什么是标志变量?

    最近我遇到了标志变量 但我不知道它们的作用 我不太确定何时使用标志变量以及如何使用它 我用 Google 搜索了它 但没有任何与我的上下文 JavaScript 相关的具体示例 标记变量的定义和使用 http www javascriptk
  • 事件监听器如何/何时附加到 d3.js 中?

    我正在尝试制作一个 SVG 编辑器 长话短说 我需要将鼠标事件附加到
  • JQuery 循环遍历动态元素并获取数据值

    我正在尝试使用可折叠面板来完成我的要求 sport on click function var thisId this attr id var thisChildren this sportlist thisChildren each fu
  • 如何水平和垂直对齐内联块

    什么是最好 最干净的使用CSS对齐 dates div位于标题的右侧 垂直于中间 I tried float right 但这不允许vertical align 我想避免使用浮动 所以我使用inline block 并使用相对定位 有没有更
  • 如何防止外部 CSS 添加和覆盖 ReactJS 组件样式

    我有一个自定义的 ReactJS 组件 我想以某种方式设置样式 并将其作为插件提供给许多不同的网站 但是 当网站使用全局样式 Twitter bootstrap 或其他 css 框架 时 它会添加并覆盖我的组件的样式 例如 全局 css l
  • 如何将 JSLint 用于依赖于 JQuery 的代码段?

    我对 Javascript 比较陌生 我想通过 JSLint 运行我周末玩的那段代码 这样它就可以指出我在哪里是个十足的白痴 不幸的是 我收到了大量关于缺少函数声明的错误 这些函数声明是 JQuery javascript 库及其各种插件的
  • 如何使相对div居中?

    我一直在尝试让以下代码工作几个小时 但没有成功 您能帮我将项目 div 居中吗 即使页面放大和缩小时 这是我的 HTML 和 CSS bottom position absolute top 100 left 0 right 0 backg

随机推荐

  • DateTimeOffset 如何处理夏令时?

    我将日程表以星期几 小时和分钟的形式存储在数据库中 当数据被读取时 我们创建一个DateTime对象下一次出现的那一天 一小时和一分钟 但我需要修改它以使其能够感知 DST 如有必要 我可以修改数据库 我知道DateTimeOffset存储
  • For 循环 Bash 中的大数序列[重复]

    这个问题在这里已经有答案了 在 Bash 脚本中 我使用一个简单的 for 循环 如下所示 for i in seq 1 1 500 do echo i done 这个 for 循环工作得很好 但是 当我想使用较大数字的序列 例如 10 8
  • UserPrincipal.FindByIdentity 导致 COM 错误 0x80005000

    我有一个 MVC Intranet 应用程序 最近从 Net 4 升级到 4 6 1 此应用程序从 Active Directory 查询用户详细信息 以加载控制器的 User Identity 属性中不可用的详细信息 并且直到最近才完美地
  • 在 RPM 规范文件中使用 Jenkins BUILD NUMBER

    Name My Software Version 1 0 5 Release 1 Summary This is my software 不确定是否有人以前尝试过这个或者它是否容易 但是 规范文件的版本有两个独特的指示符 版本 指定软件版本
  • 找到给定点的最小面积矩形以计算长轴和短轴长度的算法

    I have a set of points black dots in geographic coordinate value derived from the convex hull blue of a polygon red see
  • 匿名行内框是否包含空格?

    我阅读了 CSS2 1 规范 并在 匿名内嵌框 https www w3 org TR CSS22 visuren html anonymous部分 它显示了一个匿名内联框的示例 如下所示 p Some em emphasized em t
  • TYPO3 - 如何正确定义常量,将其存储到变量中并在流体模板内部使用

    在我正在开发的插件的 Fluid 模板中 有些东西是硬编码的 例如
  • 如何分发 Go 应用?

    我用 Go 编写了一个应用程序 它有两个外部依赖项需要在编译之前满足 在 Go 生态系统中 打包此应用程序以实现简单安装过程 包括安装这些远程依赖项 的最佳方法是什么 用户将如何安装我的应用程序 如果您期望用户编译您的应用程序 并且该应用程
  • 在 CSS 中创建背景图案

    我有以下图片 其中有这个有角度的条纹图案 我想知道如何使用 CSS 作为背景图案来创建这个图案 干杯 英语 编辑 我在代码笔中添加了第二个示例 与已经给出的答案类似 但添加了避免梯度的内容 http codepen io anon pen
  • C++ 优化器是否允许在函数调用之间移动语句?

    Note 这里根本没有多线程 只是优化了单线程代码 函数调用引入一个序列点 https stackoverflow com a 18516712 321013 显然 是否可以得出编译器 如果优化器内联该函数 是not是否允许在函数指令之前
  • 解决方案范围#define

    有没有办法全局声明 define 就像我想要一个文件 例如 define MONO 我希望所有源代码文件都知道这个预处理器指令已定义 我将如何实现这一目标 更新 您不能对 解决方案范围 进行定义 但下面的答案在每个项目的基础上都是可行的 您
  • 按键对数组排序 OR:为什么我的 for 循环执行无序?

    我有一个对象数组 需要根据某些配置数据按一定顺序放置 我在以正确的顺序遍历数组时遇到问题 我认为如果我创建了数组 然后使用 for 循环单步执行 我将能够正确执行代码 它工作得很好 除了在一个用例中 我将第四个项目添加到数组中 然后返回到第
  • java.nio.file 在哪里

    我正在阅读 java 文档 它告诉我应该有一个 java nio file 命名空间 但是当我尝试导入它时 预编译器抱怨它不存在 这是怎么回事 java nio fileJava 7 中出现 Java 6 或更早版本中没有 您一定正在阅读J
  • C# - 将“.txt”文件保存到项目根目录

    我编写了一些代码 需要我保存文本文件 但是 我需要将其保存到我的项目根目录 以便任何人都可以访问它 而不仅仅是我 这是有问题的方法 private void saveFileToolStripMenuItem Click object se
  • 如何在不拉动所有对象的情况下编辑或添加到特定字段

    我怎样才能做到这一点 a myFavorits Add 而不将所有对象拉到 vara 因为a有很多数据 我不想全部拉出来a对象 但我找不到方法来做到这一点 我想做 lambda 和 linq 而不返回一些东西 但 linq 总是返回一些东西
  • MVC 3 Razor 如何使复杂的 javascript 有条件?

    我有这个多行 JavaScript 片段 getJSON Url Action ReconBases modelId selectedModelId function selectItems buildDropDown SelectedRe
  • Gradle 可以在连续构建模式下重新启动正在运行的应用程序吗?

    With gradle run t每当 src 文件发生更改时 我的 java 应用程序都会在退出后很好地重新启动 但是我可以使用 Gradle 终止正在运行的应用程序并重新启动它吗 我可以看到使用 dGradle 在我的应用程序运行时检测
  • 简单的node js应用程序

    我正在尝试制作一个简单的表单 其中包含用户名和姓氏 当用户提交信息时 会显示另一个页面 我用 html 做了一个表单 但我不知道下一步该怎么做 有没有人有一个小型的 独立的表单示例 使用node js 这个例子并没有完全完成你的任务 但它是
  • 将 for 循环转换为 java 8 流

    我正在研究 Java 8 将这个 for 循环转换为 Java 8 Stream 时遇到了一些麻烦 for int y 0 y lt 5 y for int x y x lt 10 x 2 System out println x y 请帮
  • 根据输入字段的字符数动态扩展输入类型“文本”的高度

    与下面的 JSFiddle 类似 我将其添加为书签 但不知道原始问题从哪里出现 http jsfiddle net mJMpw 6 http jsfiddle net mJMpw 6