【问题标题】:jQuery keypress event for a form that's a resulf of an ajax call作为 ajax 调用结果的表单的 jQuery 按键事件
【发布时间】:2012-09-06 17:05:08
【问题描述】:

单击我页面中的链接会提交 ajax 请求并在模式对话框窗口中加载响应。该响应包含一个 ID 为“ModalForm”的表单。我想要实现的是防止此特定表单的“Enter”键的默认表单行为,并将其替换为执行我编写的 JS 函数。不幸的是,我无法让它工作,也无法收到警报消息。这是我的代码:

jQuery(function (){
    jQuery('#ModalForm').keypress(function(e){
        alert(e.keyCode);
        if (e.keyCode == 13) {
            modalWindowSubmit();
        }
    });

    jQuery('#ModalForm').on('keypress', (function() {
        alert('hi');
    });

});

提前致谢!

【问题讨论】:

  • 你需要在加载#ModalForm的回调中执行这段JS,而不是在文档准备好的时候。或者使用.live() 而不是.on()

标签: jquery events keypress


【解决方案1】:

你必须在ajax调用的“成功”中绑定表单上的事件

【讨论】:

    【解决方案2】:

    您必须使用 KeyUp - 按键时不知道键码

      jQuery(function (){
       jQuery('#ModalForm').keyup(function(e){
        alert(e.keyCode);
        if (e.keyCode == 13) {
            modalWindowSubmit();
        }
    });
    

    或

      jQuery(document).on('keyup', '#ModalForm', (function(e) {
        alert(e.KeyCode);
      });
    

    .on 通常用于在动态创建元素时将元素绑定到事件,如果不是这种情况,第一个选项就可以正常工作

    【讨论】:

      猜你喜欢
      • 2020-10-25
      • 2012-04-21
      • 2013-09-26
      • 2014-01-21
      • 1970-01-01
      • 2011-08-31
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多