日期:2014-05-18  浏览次数:20459 次

关于IE文本框自动匹配和文本框回车提交的问题
文本框回车提交:    
  this.tb_Keyword.Attributes.Add( "onkeydown ",     "enterSubmit(this) ");    
JS是:function     enterSubmit(src)    
              {    
                                          if(window.event.keyCode==13     )    
                              {    
                                         
                                              event.returnValue=false;    
                                              document.getElementById(idAppr+     "ib_Submit ").click();    
                                         
                              }    
                      }    
这样的确能实现文本框回车提交,    
但是当IE有自动匹配的时候,IE会自动将以前输过的词匹配用下拉框显示出来,点击下拉中的一项,文本框内出现这一项,回车提交这是正常的,但是直接用上下键选择不点击,选中后直接回车,比如我输入G,下拉中有GOOGLE,我用上下键选择GOOGLE直接回车,查出来的词是G不是选定的GOOGLE,这是我回车的时候直接就执行enterSubmit()这个了,文本框内的文本还没有变成GOOGLE,这个问题怎么解决??我用JS怎么判断这个回车是选定回车,还是在文本框中要提交的回车?

------解决方案--------------------
通过添加TextBox1_TextChanged(object sender, System.EventArgs e)事件实现textbox回车提交,不要写js代码。
把TextBox1的autopostback属性设置为false,把要执行的提交代码写在TextBox1_TextChanged(object sender, System.EventArgs e)事件里,这样就可以达到你要的效果了。
------解决方案--------------------
把tb_Keyword放在一个表格里,打开html代码页面,在tb_Keyword所在的td加入onkeydown事件:
<td TD onkeydown= "enterSubmit(this) ">