6

HTML入力フィールドがあるとしましょう

<input type="text" maxlength="50" size="50" name="subject" id="subject">

入力された 3 文字ごとに関数をトリガーする必要があります。

例えば:

ユーザーが「aaa」と入力すると、イベントがトリガーされ、ユーザーは引き続き「aaa bbb」と入力し、イベントを再度トリガーします。

ただし、スペースはカウントしないでください。

フィールドの値を外部 API に投稿するために、つまり検索を行うために、これが必要です。

誰もこれをやったことがありますか?

助けてください。

4

3 に答える 3

14

このようなことを試してください。inputページの読み込み時にイベント ハンドラーをバインドする

$(function(){

    $("#subject").change(function(){

         var val = $(this).val().trim();
         val = val.replace(/\s+/g, '');

         if(val.length % 3 == 0) { //for checking 3 characters
               //your logic here
         }

    });      
});
于 2013-02-11T12:54:29.417 に答える
12

ユーザーが入力している間にこれを実際にリアルタイムで実行し、入力からフォーカスを外す必要がない場合は、keyupイベントとわずかに変更されたロジックを使用して、スペースバーの押下を除外できます。

$('#subject').on('keyup', function(e) {
    if (e.which !== 32) {
        var value = $(this).val();
        var noWhitespaceValue = value.replace(/\s+/g, '');
        var noWhitespaceCount = noWhitespaceValue.length;
        if (noWhitespaceCount % 3 === 0) {
            // Call API
        }
    }
});

jsfiddle

于 2013-02-11T13:10:57.743 に答える