Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入未解决的任务_Javascript_Jquery_Html_Css_Input - Fatal编程技术网

Javascript 输入未解决的任务

Javascript 输入未解决的任务,javascript,jquery,html,css,input,Javascript,Jquery,Html,Css,Input,我有以下代码: 正如您所看到的,当您键入一个字母时,此输入的大小将增大。但问题是,当我从结尾删除第一个字母时,输入不会减少,当我从结尾删除第二个字母时,输入开始减少。所以问题是,在感谢之前,如何在删除最后一封信时,而不是在删除第二封信时,减少输入的大小 -HTML -JS 使用keyup事件而不是keydown事件。因为keydown事件发生在输入更新其值之前。它将起作用。使用keyup事件而不是keydown事件。因为keydown事件发生在输入更新其值之前。它将起作用。在JSFIDLE示例

我有以下代码:

正如您所看到的,当您键入一个字母时,此输入的大小将增大。但问题是,当我从结尾删除第一个字母时,输入不会减少,当我从结尾删除第二个字母时,输入开始减少。所以问题是,在感谢之前,如何在删除最后一封信时,而不是在删除第二封信时,减少输入的大小

-HTML

-JS


使用
keyup
事件而不是
keydown
事件。因为
keydown
事件发生在输入更新其值之前。它将起作用。

使用
keyup
事件而不是
keydown
事件。因为
keydown
事件发生在输入更新其值之前。它将起作用。

在JSFIDLE示例的第26行中,更改该行:

$inputs.find('input').keydown(function (e) { 
致:


JSFIDLE示例的第26行,更改该行:

$inputs.find('input').keydown(function (e) { 
致:


是的,我知道,因为如果我使用keyup事件,我不能按住delete按钮,因为当我松开delete按钮时,输入会减少,我不需要它。输入应该和文本同时减少。那么现在我该如何解决这个问题呢?使用
keydown
您将明确删除最后一个字符,它将工作:
$inputs.find('input').keydown(函数(e){if(e.keyCode==8 | e.keyCode==46){var arr=$(this.val().split(“”);arr.splice((arr.length)-1,1);resizeForText.call($(this),arr.join(“”);})是的,我知道,因为如果我使用keyup事件,我无法按住delete按钮,因为当我松开delete按钮时,输入将减少,我不需要它。输入应该和文本同时减少。那么现在我该如何解决这个问题呢?使用
keydown
您将明确删除最后一个字符,它将工作:
$inputs.find('input').keydown(函数(e){if(e.keyCode==8 | e.keyCode==46){var arr=$(this.val().split(“”);arr.splice((arr.length)-1,1);resizeForText.call($(this),arr.join(“”);})你跟我说同样的话之前的家伙,这不是解决我的问题你跟我说同样的话之前的家伙,这不是解决我的问题
$(document).ready(function () {
    var $inputs = $('.resizing-input');

    // Resize based on text if text.length > 0
    // Otherwise resize based on the placeholder
    function resizeForText(text) {
        var $this = $(this);
        if (!text.trim()) {
            text = $this.attr('placeholder').trim();
        }
        var $span = $this.parent().find('span');
        $span.text(text);
        var $inputSize = $span.width();
        $this.css("width", $inputSize);
    }

    $inputs.find('input').keypress(function (e) {
        if (e.which && e.charCode) {
            var c = String.fromCharCode(e.keyCode | e.charCode);
            var $this = $(this);
            resizeForText.call($this, $this.val() + c);
        }
    });

    // Backspace event only fires for keyup
    $inputs.find('input').keydown(function (e) { 
        if (e.keyCode === 8 || e.keyCode === 46) {
            resizeForText.call($(this), $(this).val());
        }
    });

    $inputs.find('input').each(function () {
        var $this = $(this);
        resizeForText.call($this, $this.val())
    });
});
$inputs.find('input').keydown(function (e) { 
$inputs.find('input').keyup(function (e) {