【问题标题】:Set button focus next to field so that it uses either Enter or Mouse click with jQuery设置字段旁边的按钮焦点,以便它使用 jQuery 的 Enter 或鼠标单击
【发布时间】:2010-10-25 06:21:57
【问题描述】:

我希望能够按回车键或单击鼠标在输入框中提交信息。

现在,当您使用选项卡手动更改焦点或用鼠标单击时,它将提交信息。它使用 jQuery live Click 方法。 我找到了将焦点设置为按钮的解决方案

Setting focus to a button next to a text box

但我不知道如何实现它,所以我可以使用实时点击收听并执行或执行。鼠标单击或回车按钮。任何帮助表示赞赏。

示例:可以使用带焦点的输入按钮或鼠标单击来执行此操作。

$('#theinput').keypress(function(event) { 
  if (event.keyCode == '13') { 
    $('#mybutton').click(); 
    event.preventDefault(); 
  } 
}); 

问题是我不知道如何将该示例转换为也使用类似的东西

$('a.button').live('click',function(){
//do stuff here
)};

【问题讨论】:

  • 等等,什么?我不明白...
  • 如果您使用 form 元素和 submit 这不是自动/默认行为吗?
  • 是的,但这有点复杂。我无法使用两个按钮让它工作。一个在表格中,一个不是,所以它不会按我想要的方式工作。我必须使用 click 和类选择器,所以两个按钮都可以工作。

标签: php javascript jquery


【解决方案1】:

我会使用命名函数来做到这一点:

$(document).ready(function(){
    var submitter = function() {
       // do something
    };

    $('#theinput').keypress(function(event) {
        if (event.keyCode == '13') {
            event.preventDefault(); 
            submitter();
        } 
    });

    $('a.button').live('click', submitter);
});

这对两个事件使用相同的函数,而不会触发另一个不必要的事件,这会导致性能问题。

【讨论】:

  • 这几乎行得通。不知何故,它提交了两次,因为我收到了双份帖子。任何想法?谢谢!
  • 找到了问题所在。我有两个按钮,一个是可见的,一个是隐藏的,故意在同一个类中。但是由于某种原因,它同时提交了这两个文件,这导致了双重发布。即使我尝试使用 isvisible,它仍然会重复发布。当我更改班级名称时,它停止了重复发布。我必须解决这个问题,但答案似乎可以解决问题。我仍然需要取出提交者();从 Keypress 或它也会双张贴。因此,只要您删除提交者(),它就可以正常工作;从按键功能。感谢您的帮助。
【解决方案2】:

我想如果你改变这个:

$('a.button').live(click,function(){

到这里:

$('a.button').live("click",function(){

它应该可以工作

【讨论】:

    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多