0

ユーザーが入力を終了するか、入力から離れてクリックしたときに、この更新がライブで行われないのはなぜですか?

$(document).ready(function() {
    $("input[id^='ralph']").change(function() {
        var currentId = $(this).attr('id');
        var currentValue = $(this).val();
        //Billing
            var elements = currentId.replace('ralph','john');
            $('.' + elements).text(currentValue);
        //Shipping
            var elements = currentId.replace('john','george');
            $('.' + elements).text(currentValue);
    });
});
4

3 に答える 3

1

最新のブラウザーでは、次のoninputイベントを使用する必要があります。

$("#ralph").on('input', function() {...});

古いものでは、これを使用します:

$("#ralph").on('keyup paste', function() {...});
于 2013-06-04T14:40:19.243 に答える
1

コントロールがぼやけるまで変更イベントは発生しないため、キープレスを使用できます。

入力タイプのテキストを入力するときに onchange を追跡するための最良の方法の投稿を見てください。

jQuery API から

キープレス()

keydown と keyup はどのキーが押されたかを示すコードを提供し、keypress はどの文字が入力されたかを示すことに注意してください。たとえば、小文字の "a" は、keydown と keyup では 65 と報告されますが、keypress では 97 と報告されます。大文字の「A」は、すべてのイベントで 65 として報告されます。この違いにより、矢印キーなどの特殊なキーストロークをキャッチする場合は、.keydown() または .keyup() を選択することをお勧めします。

変化する()

change イベントは、値が変更されたときに要素に送信されます。このイベントは、要素、ボックス、および要素に限定されます。選択ボックス、チェックボックス、およびラジオ ボタンの場合、ユーザーがマウスで選択を行うとすぐにイベントが発生しますが、他の要素タイプの場合、要素がフォーカスを失うまでイベントは延期されます。

于 2013-06-04T14:34:00.073 に答える
1

使いたい.keyup

$(document).ready(function() {
    $("#ralph").on('keyup', function() {
        var currentId = $(this).attr('id');
        var currentValue = $(this).val();
        //Billing
            var elements = currentId.replace('ralph','john');
            $('.' + elements).text(currentValue);
        //Shipping
            var elements = currentId.replace('john','george');
            $('.' + elements).text(currentValue);
    });
});

また、input[id^='ralph']ただすることができます#ralph

これが機能するフィドルです。http://jsfiddle.net/yxYpW/

于 2013-06-04T14:35:07.660 に答える