javascript - 文本框更改事件不会立即影响 jquery

标签 javascript jquery

我试图在文本框中输入内容时启用 img 按钮。但在文本框失去焦点后它正在工作。如何立即看到变化?

      $("[id$='txtNewPass2']").change(function () {
            if (myPlugin.metReq() == true && $("[id$='txtNewPass2']").val().length > 0) //return true or false
                $("#imgSubmit").removeAttr("disabled").css('opacity', 1);
            else
                $("#imgSubmit").attr("disabled", "disabled").css('opacity', 0.5);
        });

最佳答案

使用keyupinput事件。

$("[id$='txtNewPass2']").on('input', function () {
        if (myPlugin.metReq() == true && $("[id$='txtNewPass2']").val().length > 0) //return true or false
            $("#imgSubmit").removeAttr("disabled").css('opacity', 1);
        else
            $("#imgSubmit").attr("disabled", "disabled").css('opacity', 0.5);
    });

推荐使用 keyup 而不是 keydown 的原因是,在下面的代码片段中,如果您使用 keydown事件将始终落后一个字母。

更新:

在尝试了我下面创建的示例之后。我可以看到 input 事件创建了更加平滑的更新效果。请参阅下面的示例,了解这三种方法的工作原理对比

示例:

$('#keyup-input').on('keyup', function () {
    $('#keyup-div').html($('#keyup-input').val());
  });
$('#keydown-input').on('keydown', function () {
    $('#keydown-div').html($('#keydown-input').val());
  });
$('#input-input').on('input', function () {
    $('#input-div').html($('#input-input').val());
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Keyup:</h1>
<input id="keyup-input" type="text" />
<div id="keyup-div"></div>
<br/>
<br/>
<h1>Keydown:</h1>
<input id="keydown-input" type="text" />
<div id="keydown-div"></div>
<br/>
<br/>
<h1>Input:</h1>
<input id="input-input" type="text" />
<div id="input-div"></div>

关于javascript - 文本框更改事件不会立即影响 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26172593/

相关文章:

javascript - React 不渲染新组件,新的 webpack 设置

javascript - js html背景颜色与高亮

javascript - 如何在使用.stop时让.slideDown和.slideUp完成动画?

Jquery 在悬停时淡出所有其他 elms,直到鼠标离开所有 elms 一段时间后才淡入

jquery - 删除 jquery 多个自动完成 ajax 中已选择的值

jquery - 如何通过类名和位置检索元素

javascript - 淡入图像,效果完成后,淡入旁边的另一个图像

javascript - `dd-M-yyyy` 格式的日期解析字符串

javascript - 如何从 Node.js 文档中获取表格

jquery - 如何在 .scrolltop 函数中使用 vh 单位而不是像素