2012-10-17 36 views
0

我需要這樣做,如果用戶鍵入單詞「魁北克」的任意組合,它會自動將其重命名爲魁北克城,這需要發生在任何情況下。我遇到的問題是,如果這個詞有任何空白,它就不會起作用。我試圖修剪字符串,但它沒有正常工作。這是我的代碼,請告訴我是否還有任何可以改進的地方。Jquery:如果用戶鍵入一個特定的詞,空格問題,則替換一個詞

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


​ 

回答

1

你應該返回值回field變量:

field = $.trim(field); 

此外,我建議你使用keyup事件,而不是keypress

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

相關問題