当前位置: 首页 > 面试题库 >

jQuery-自动输入文字大小(不是textarea!)

袁良弼
2023-03-14
问题内容

如何使用jQuery自动调整输入类型=“文本”字段的大小?我希望它一开始的宽度为100像素,然后在用户输入文字时使其自动变宽……这可能吗?


问题答案:

这是一个插件,可以满足您的需求:

插件:

(function($){

$.fn.autoGrowInput = function(o) {

    o = $.extend({
        maxWidth: 1000,
        minWidth: 0,
        comfortZone: 70
    }, o);

    this.filter('input:text').each(function(){

        var minWidth = o.minWidth || $(this).width(),
            val = '',
            input = $(this),
            testSubject = $('<tester/>').css({
                position: 'absolute',
                top: -9999,
                left: -9999,
                width: 'auto',
                fontSize: input.css('fontSize'),
                fontFamily: input.css('fontFamily'),
                fontWeight: input.css('fontWeight'),
                letterSpacing: input.css('letterSpacing'),
                whiteSpace: 'nowrap'
            }),
            check = function() {

                if (val === (val = input.val())) {return;}

                // Enter new content into testSubject
                var escaped = val.replace(/&/g, '&amp;').replace(/\s/g,' ').replace(/</g, '&lt;').replace(/>/g, '&gt;');
                testSubject.html(escaped);

                // Calculate new width + whether to change
                var testerWidth = testSubject.width(),
                    newWidth = (testerWidth + o.comfortZone) >= minWidth ? testerWidth + o.comfortZone : minWidth,
                    currentWidth = input.width(),
                    isValidWidthChange = (newWidth < currentWidth && newWidth >= minWidth)
                                         || (newWidth > minWidth && newWidth < o.maxWidth);

                // Animate width
                if (isValidWidthChange) {
                    input.width(newWidth);
                }

            };

        testSubject.insertAfter(input);

        $(this).bind('keyup keydown blur update', check);

    });

    return this;

};

})(jQuery);


 类似资料:
  • 问题内容: 我有一个具有文件上传功能的表单,如果用户尝试上传的文件太大,我希望能够有一些不错的客户端错误报告,是否有一种方法可以使用jQuery检查文件大小,或者纯粹是在客户端上还是以某种方式将文件发布回服务器以进行检查? 问题答案: 您实际上没有访问文件系统的权限(例如,读取和写入本地文件),但是,由于HTML5FileApi规范,您确实可以访问某些文件属性,并且文件大小是其中之一。 对于下面的

  • 问题内容: 我一直试图(徒劳地)建立一个页面,当我更改窗口大小时,其元素将重新调整大小。我可以在CSS中使用它来处理图像,但是没有问题,但是我似乎无法在文本上完成相同的操作,而且我不确定在CSS中是否有可能。而且我似乎找不到能完成此任务的jQuery脚本。 当用户调整窗口大小时,我实质上希望页面能够动态流畅地缩放,而无需用户调用页面缩放。通过css在我的img div上这可以正常工作,但对于文本则

  • 本文向大家介绍js实现用户输入的小写字母自动转大写字母的方法,包括了js实现用户输入的小写字母自动转大写字母的方法的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇js实现用户输入的小写字母自动转大写字母的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 如何以快速语言强制某些文本字段键入小写或大写? 问题答案: 您应该进入,因为您已经更新了。 If you don’t want to affect other textfields you should end of the . https://gist.github.com/fatihyildizhan/ac5f476aebd306b0580a1fa069f153a3

  • 每次鼠标左键单击,递增,因此值始终在变化。我想要显示在条目字段,但我无法实现这一点。 如何使输入字段始终更新并在?

  • 问题内容: 我被分配编写一个程序,该程序读取一系列整数输入并打印-输入的最小和最大-以及偶数和奇数输入的数量 我想出了第一部分,但对如何使程序显示最大和最小感到困惑。到目前为止,这是我的代码。我怎样才能显示最小的输入呢? 问题答案: 最简单的解决方案是使用诸如和