让Rails的auto_complete_field支持中文提示

    Rails的auto_complete插件非常棒,可以用很少的代码来实现输入框的自动提示功能,在使用过程中发现这个插件并不能很好的支持中文,当然这不是插件的错,而是script.aculo.us这个JS组件的Autocompleter并不能太好的支持中文提示。例如,当输入"中国"查询的时候,先在输入法中输入zhongguo,这时JS会开始发送zhongguo去后台查询,按了空格选择中文后,JS不会再重新发送中文去后台,网上查了一下资料,将controls.js中Event.observe的keydown事件改为keyup就可以了(第89行附近),中英文的自动提示都没问题。相信这个Bug应该在以后的版本中得到修正吧。

 

最近转入JQuery阵营,发现JQuery仍然有中文输入提示的问题,只要把keydown事件改成keyup就可以了,但是这时候用户按Tab或者回车键,选择的提示文字不会进入到输入框,加入下面的代码解决:

$input.bind("keydown.autocomplete", function(event) {
		switch(event.keyCode) {
			case KEY.TAB:
			case KEY.RETURN:
				if( selectCurrent() ) {
					// stop default to prevent a form submit, Opera needs special handling
					event.preventDefault();
					blockSubmit = true;
					return false;
				}
				break;
		}
	})
 

你可能感兴趣的:(jquery,Opera,Rails)