在removeClass JQuery之后没有删除类

Class is not getting removed after removeClass JQuery

本文关键字:删除 之后 removeClass JQuery      更新时间:2023-09-26

嗨,我有一个文本框,如下所示:

<input data-val="true" data-val-regex="Alt. Phone is not correct" 
  data-val-regex-pattern="(1-?)?('([2-9]'d{2}')|[2-9]'d{2})-?[2-9]'d{2}-?'d{4}" 
  id="AltPhone" maxlength="150" name="AltPhone" tabindex="33" type="text"
  value="" class="input-validation-error">

我想删除选项卡键上的class="input validation error",其代码如下:

$(document).ready(function () {
            $("#AltPhone").live('keydown', function (e) {
                var code = e.keyCode || e.which;
                if (code == 9) {
                    $(this).removeClass('input-validation-error');
                    e.stopPropagation();
                }
            });
        });

但我仍然无法从文本框中删除该类。在这里,函数被调用,也调用了下面的代码行,但在函数被调用完成后,该类仍然出现在文本框中。

$(this).removeClass('input-validation-error');

输入时有一个适当的事件来管理选项卡,使用blur

$("#AltPhone").on('blur', function (e) {
      //code here
});

请改用.keydown()事件。

$(document).ready(function () {
            $("#AltPhone").keydown(function (e) {
                var code = e.keyCode || e.which;
                if (code == 9) {
                    $(this).removeClass('input-validation-error');
                    e.stopPropagation();
                }
            });
        });

工作示例:https://jsfiddle.net/j2y9w1x6/

单击Tab键后,检查Result部分中的元素,查看验证类是否已被删除。

也许是因为这个键拦截了你的浏览器。请尝试其他密钥,例如ENTER