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

这样的事情应该做,或者至少是一个好的开始:

$('#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);
    }
});

小提琴

于 2012-10-17T12:47:29.007 回答
1

您应该将值返回给field变量:

field = $.trim(field);

此外,我建议您使用keyupevent 而不是keypress.

于 2012-10-17T12:18:16.517 回答
0

适用于field = field.replace(/ /g, "");

这是一个工作演示http://jsfiddle.net/KyGKf/1/

于 2012-10-17T12:22:25.593 回答