使用jQuery按下输入键时单击链接

我试图这样做,当用户在文本框中并按Enter键时,它与单击链接相同,在这种情况下,它应该将它们带到另一个页面。 这就是我所拥有的,它不起作用。

代码

//jQuery $(document).ready(function() { //if focus is in the input box drivingSchoolInput $("#drivingSchoolInput").live("click", function() { //if enter key is pressed if(e.keyCode == 13) { //click the button and go to next page $("#button1").click(); } }); }); 

标记

 

Submit

写一个小的jQuery插件:

 jQuery.fn.enter = function(callback) { if(!callback) { //don't attach if we have garbage. return; } $(this).keydown(function(e) { var ev = e || event; if(ev.keyCode == 13) { callback(); return false; } }); }; 

用法: $(element).enter(callback_func);

我希望这有帮助。

看看这个: jQuery Event Keypress:按下了哪个键?

我只是在这里整合post中的代码:

 $('#searchbox input').bind('keypress', function(e) { var code = e.keyCode || e.which; if(code == 13) { //Enter keycode //Do your stuff + form submit } }); 

PS:我从来没有对它进行测试,但它“应该”有效。 :P

这个代码有几个主要问题……

第一个, pygorex1捕获 :如果你想引用它,你需要指定事件参数…

第二个位于代码的同一区域:您正在尝试检查click事件处理程序中的click事件!

第三个可以在这一行找到:

  //click the button and go to next page $("#button1").click(); 

…什么也没做,因为你在那个链接上没有事件处理程序,而jQuery的click()函数不会触发浏览器的默认行为 !

相反,尝试这样的事情:

 // if a key is pressed and then released $("#drivingSchoolInput").live("keyup", function(e) { // ...and it was the enter key... if(e.keyCode == 13) { // ...navigate to the associated URL. document.location = $("#button1").attr('href'); } }); 

我想做类似的事情,所以在阅读了上面提到的David K Egghead的建议之后,我想出了这一点,即使在按下输入时也会在锚点上触发“点击”。 也可以用来“点击”按钮!

 $(document).keypress(function(event){if(event.keyCode==13){$('.save_icon').trigger("click");}}); 

这条线需要e

 $("#drivingSchoolInput").live("click", function(e) { 

我有一个非常相似的问题。 但是,我无法找到完整的解决方案。

我只是想将相同的函数附加到2个不同的元素,使用2种不同的方法来执行它。 例如,Tom想要的:点击链接,或在输入字段中按ENTER,然后执行相同的function(即导航到另一个页面)。

Jacob Relkin为“输入”按键提出了一个好主意。 我在下面的代码中包含了这个:

所以基于以下简单标记:

 
Click me!

使用此JavaScript(JQuery)代码:

 //this is the plugin Jacob Relkin suggested (function($) { $.fn.enter=function(callback){ this.keyup(function(e) { var ev = e || event; if(ev.keyCode == 13) { callback(); return false; } }); }; })(jQuery); $(document).ready(function(){ var fnDoStuff = function() { //insert code here //for this example I will complete Tom's task document.location.href = $("#myButton").attr('href'); }; $('#myInput').enter(fnDoStuff); $('#myButton').click(fnDoStuff); }); 

通过这种方式,您可以将相同的函数附加到任意数量的元素,并具有任何类型的交互。

我在asp.net LinkBut​​ton中使用了以下内容

  $('#drivingSchoolInput').keypress(function (event) { if (event.keyCode == 13) { eval($('#button1').attr('href')); } }); 

我还在标题上有一个FORM允许进行搜索,所以我需要添加另一个步骤来禁用发布的FORM。

  $('#drivingSchoolInput').keypress(function (event) { if (event.keyCode == 13) { $('#header1_ButtonTerm').attr('disabled', 'disabled'); <-- hack added to kill FORM POST eval($('#button1').attr('href')); } });