用户在输入字段中键入特定单词时的火警

时间:2015-05-06 15:08:12

标签: javascript jquery

当用户在输入字段中输入某个单词时,我想发出警告...当用户点击某个提交按钮或其他任何内容时...但是在关键字输入字段后立即... ...

让我们说当在下面的字段中键入“foobar”时,警报会立即触发:

<input id="password" name="password" />

可以这样做吗?

3 个答案:

答案 0 :(得分:3)

是的,很容易:

$(function() {
    var triggerWords = ['foobar', 'barfoo'];
    $('#password').keyup(function() {
        for (var i = 0; i < triggerWords.length; i++) {
            if ($(this).val().toLowerCase() == triggerWords[i]) {
                alert('Alert!');
            }
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="password" name="password" />

这个处理多个单词。这也是一个小提琴:http://jsfiddle.net/rnpykekx/

答案 1 :(得分:0)

确实是

jQuery('input#password').on('change', function(){
  if (jQuery(this).val() == "foobar") alert('bad password!')
});

这将捕获短语foobar,但仅在用户停止输入输入后。在用户停止输入之前,您是否需要捕获它?

答案 2 :(得分:0)

使用onkeyuponchange(后者仅在删除焦点时触发)事件以检测用户何时更改表单中的内容(例如,键入),然后搜索输入的值所需的字符串(例如,使用inputValue.indexOf("foobar") != -1,如果“foobar”在字符串中,则为true。

请注意,这会在用户输入内容的每个时间内提醒,即使他们没有输入特定的字词。解决这个问题的一种方法是保存您是否已经发出警报(例如,仅在第一次输入时发出警报),或者跟踪单词的出现次数,然后在出现增加时发出警报。