2011-04-29 27 views
0

好吧,我有一个文本字段,它将扫描到所述文本字段中的条形码。它将搜索数据库并以提交按钮的形式返回信息。我正在使用此代码模拟点击提交按钮。模拟点击以在jQuery中提交表单

if($.browser.msie){ 
//simulate a click on the button 
    $("#search").keyup(function (e) { 
     if(e.keyCode == 13) { 
      $('input:submit').click(); 
     } 
    }); 
} 

该代码的问题是,它需要所有击键,然后多次单击该按钮。这个提交将代表写入数据库的数据,所以如果条形码是abc123,它会执行这个操作6次,但我只需要它执行一次。我该如何解决?我的代码工作在FF和Chrome,但不是IE,这是我需要得到它的工作。Grrr我非常讨厌IE!

+0

浏览器在默认情况下是否不提交输入表单,而没有任何额外的JavaScript? – 2011-04-29 13:29:13

+0

如果您的条形码阅读器在将条形码输入到输入字段后模拟按Enter键,是否不会自动触发表单的默认提交动作? – DarthJDG 2011-04-29 13:30:02

+0

这也是我的想法,但由于某种原因它在IE中无法正常工作,可能是因为IE很烂,但我无法确定;) – Chris 2011-04-29 13:44:56

回答

0

试图让这样的代码:

var keyCode = (window.event) ? e.which : e.keyCode; 
+0

不行,不起作用。 – Chris 2011-04-29 13:47:45

1

为什么你需要“点击”是提交按钮?你为什么不只是提交等形式:

$("#search").blur(function(){ 
    document.myform.submit(); 
}); 

你的条码​​阅读器会为你做到这一点。

+0

我被告知,条形码阅读器的功能就像在半秒钟内输入所有内容,然后按回车键,所以我想我必须通过模拟点击来迫使它在IE中发生,但上面的这种方法也不起作用。 – Chris 2011-04-29 14:19:15