1

ユーザーが「ケベック」という単語の任意の組み合わせを入力すると、自動的にケベックシティに名前が変更されるようにする必要があります。これは、いずれにしても発生する必要があります。私が抱えている問題は、単語に空白があると機能しないことです。文字列をトリミングしてみましたが、正しく機能しませんでした。これが私のコードです。私も改善できることがあれば教えてください。

     $('#location').on('blur', function() {
            var field = $('#location').val();
            $.trim(field);
            switch (field) {
                case 'Quebec' :
                case 'QUEBEC' :
                case 'Québec' :

                    $('#location').attr('value', 'Quebec City');
                    break;    
            }
        })

        $('#location').on('keypress', function() {
            var field = $('#location').val();
            $.trim(field);
            switch (field) {
                case 'Quebec' :
                case 'QUEBEC' :
                case 'Québec' :

                    $('#location').attr('value', 'Quebec City');
                    break;    
            }
        })


​
4

3 に答える 3

1

field値を変数に戻す必要があります。

field = $.trim(field);

keyupさらに、の代わりにイベントを使用することをお勧めしますkeypress

于 2012-10-17T12:18:16.517 に答える
1

このようなことをする必要があります、または少なくとも良いスタートです:

$('#location').on('keyup blur', function() {
    var field = this.value,
        test = field.toLowerCase().replace('é','e').indexOf('quebec');

    if (test!=-1 && field.slice(test, test+11)!='Quebec City') {
       this.value = field.substring(0, test) + "Quebec City" + field.substring(test+6);
    }
});

FIDDLE

于 2012-10-17T12:47:29.007 に答える
0

で動作しますfield = field.replace(/ /g, "");

これが動作するデモですhttp://jsfiddle.net/KyGKf/1/

于 2012-10-17T12:22:25.593 に答える