javascript - 停止光标,直到 javascript 中的文本区域中的文本发生更改

标签 javascript jquery cursor textarea

尝试允许用户在文本区域中输入内容,但如果看到某个单词,我希望光标停止,直到该单词被删除。

我找到了这个词,但我找不到让光标停止的方法。

关于如何在 javascript 中执行此操作的任何想法

 $(function() {
            $('#ideacomment').bind('keyup', function(e){
                var characterLimit = 300;
                charactersUsed = $(this).val().length;

                if(charactersUsed > characterLimit){
                    charactersUsed = characterLimit;
                    $(this).val($(this).val().substr(0, characterLimit));
                    $(this).scrollTop($(this)[0].scrollHeight);
                }
                var charactersRemaining = characterLimit - charactersUsed;
                $('#remainingCharacters').html(charactersRemaining);

                 var words = $('#ideacomment').val().split(/\b[\s,\.-:;]*/);
                 var wordcount = words.length;
                 var nonewords = new Array("f**k", "you");
                 var nonewordcount = nonewords.length;
                //console.log(nonewordcount + ' is the count');

                for(var i = 0; i < wordcount; i++) {

                    for(var t = 0; t < nonewordcount; t++) {
                        if(words[i] == nonewords[t]) {
                            message('No swearing please! <br><br> This post will not succeed!<br><br> Please remove it before you continue!', '430');
                            }
                        }
            }
            });


      });

上面的代码计算字符数并检查每个单词。我想并且我已经尝试过但没有成功,但它就像空间不足一样。但我无法使用限制器相同的代码来实现它?

这是新代码。但仍然无法正常工作:

        $(function() {
            $('#ideacomment').bind('keyup', function(e){
                var characterLimit = 300;
                charactersUsed = $(this).val().length;

                if(charactersUsed > characterLimit){
                    charactersUsed = characterLimit;
                    $(this).val($(this).val().substr(0, characterLimit));
                    $(this).scrollTop($(this)[0].scrollHeight);
                }
                var charactersRemaining = characterLimit - charactersUsed;
                $('#remainingCharacters').html(charactersRemaining);

                 var nonewords = new Array("hey", "you");
                 var nonewordcount = nonewords.length;
                 for(var t = 0; t < nonewordcount; t++) {
                     if ($(this).val().indexOf(nonewords[t]) != -1) {
                        message('No swearing please! <br><br> This post will not succeed!<br><br> Please remove it before you continue!', '430');
                         var keycode = e.charCode || e.keyCode;
                            console.log(keycode);
                            if (keycode !== 8 && keycode !== 46)
                                return false;
                                }   
    }

                 });
            });

最佳答案

您可以检查按下的是哪个键,如果不是 BackspaceDelete 则阻止它。这是一个简化的示例:

$(function() {
    $('#textbox').keydown(function(e) {
        if ($(this).val().indexOf('test') != -1) {
            var keycode = e.charCode || e.keyCode;
            if (keycode !== 8 && keycode !== 46)
                return false;
        }
    });
});​

<强> jsFiddle Demo

由于您似乎已经拥有文本检查和通知部分,因此您真正缺少的只是按键阻止部分。

关于javascript - 停止光标,直到 javascript 中的文本区域中的文本发生更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11908406/

相关文章:

Android Cursor.registerContentObserver()

android - 使用 sqlcipher 获取 Cursor 时出现编译错误

javascript - String.padStart() 不适用于 Angular 函数

javascript - webview无法使用java代码android刷新

javascript - Jquery 无法设置隐藏字段值

javascript - 如何根据输入的json动态加载html元素?

javascript - 获取具有特定类名后跟数字的所有类

javascript - 为什么不能有两条 AppRegistry.registerComponent 行?

javascript - 为什么Jquery AJAX要在相对路径中添加一些路径?

django - 每次 .execute() 查询后 django 连接游标是否自动提交?