Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
Jquery 如何仅在keydown或keyup中第一次抑制输入值_Jquery - Fatal编程技术网

Jquery 如何仅在keydown或keyup中第一次抑制输入值

Jquery 如何仅在keydown或keyup中第一次抑制输入值,jquery,Jquery,在这里我遇到了一个小问题,我不知道该怎么办 让我解释一下:我在输入中有不同的值,当我得到这些值时​​我想删除旧的值 例:输入中有90,我希望当我达到54时,90是suppress,我可以写54。目前,我总是删除困扰我的输入值。所以我最终得到了4 如果有人知道如何做这样的事情,请提前谢谢 真的 我试着这样做: $j(this).keydown(function() { clearInterval(timer); timer = setTimeout(function() {

在这里我遇到了一个小问题,我不知道该怎么办

让我解释一下:我在输入中有不同的值,当我得到这些值时​​我想删除旧的值

例:输入中有90,我希望当我达到54时,90是suppress,我可以写54。目前,我总是删除困扰我的输入值。所以我最终得到了4

如果有人知道如何做这样的事情,请提前谢谢

真的

我试着这样做:

$j(this).keydown(function() {
    clearInterval(timer);
        timer = setTimeout(function() {
            return false;
        },1000);
    $j(this).val('').change();
}); 

但是计时器不是一个好的答案,因为它在1秒后进入,我想要的是,如果有更改,则将值更改为null,如果他们在1秒以内键入任何内容,则不要将值更改为null。

在焦点上清除它,而不是在键入:

$j(this).focus(function() {
    $(this).val('');
}); 

现在,它将清除每次你点击它,但不会清除每次你键入。如果您尝试在第一次单击时清除,那么我们如何知道您何时要再次清除以及应该清除?在按下键时执行此操作没有多大意义。

以下内容解决了您的问题(如果我正确理解了您想要的行为)

  • 输入中有“90”
  • 用户点击输入(
    focus
    )->90停留在输入中
  • 用户开始输入。按下第一个键后,输入即被清除
  • 用户继续键入('54'),输入不再被清除
  • 用户在输入之外单击(
    blur
    )->输入保持“54”
  • 编辑:更优雅(紧凑)的解决方案是

    $j('#test').focus(function(){
        $j(this).keydown(function() {
            $j(this).val('');
            $j(this).unbind('keydown');
        });
    }); 
    

    请提供一些代码,解释您已经尝试过的内容。如果您共享相关的代码,讨论这些内容会很好吗?我不太明白您想要实现什么。请澄清。如果用户单击输入,但在1秒内未进行任何更改,是否要清除该值?不是在用户单击时,而是在用户写入内容时。但我不想每次他写东西的时候都压制他。所以我需要做一个计时器,看看他是否还在写。所以,输入中有“90”。我点击它并等待一秒钟->输入被清除。然后我输入'15',然后一秒钟什么都没有->输入保持不变。这是我想要的行为吗?看起来很完美,我现在就试试。
    $j('#test').focus(function(){
        $j(this).keydown(function() {
            $j(this).val('');
            $j(this).unbind('keydown');
        });
    });