【问题标题】:How to catch enter click using JEditable?如何使用 JEditable 捕捉输入点击?
【发布时间】:2012-07-02 10:38:04
【问题描述】:

看看我的这段代码:

             $(".field").editable("http://"+document.location.host+"/index.php/welcome/update_record", 
             {  
                event  : "mouseover",
                style  : "inherit",
                callback: function(value, settings) 
                {
                    //Some code
                }
             }

但我有一些问题 - 这段代码对我很有用,因为它通过“输入”按钮捕获点击。但现在我需要将字段类型更改为“textarea”:

         $(".field").editable("http://"+document.location.host+"/index.php/welcome/update_record", 
         {  
            type : "textarea",
            event  : "mouseover",
            style  : "inherit",
            callback: function(value, settings) 
            {
                //Some code
            }
         }

现在它不起作用 - 即回调函数从未执行过。请告诉我,我需要有 textarea 字段并捕捉按 Enter 的事件。

【问题讨论】:

    标签: jquery jeditable


    【解决方案1】:

    如果你想在回车时做回调,你可以这样做:

    http://jsfiddle.net/NRxLP/

    $('#example').keyup(function(e) {
      if (e.which == 13) {
        $('#example').trigger('custom');
      } 
    });
    

    然后在 jEditable 中为您的处理程序捕获“自定义”事件..

    我不会将此称为最佳实践,但用户习惯于使用文本区域中的输入按钮来添加多行。也许您也可以添加一个按钮 - 我相信 jEditable 有一种方法可以自动添加一个“保存”按钮..

    在这个问题 - jquery jeditable without OK and Cancel Buttons - 他们使用模糊事件,这对我来说更有意义..

    【讨论】:

      【解决方案2】:

      我建议同时检查 ctrl 和 shift 键,并防止出现默认行为:

      $(this).bind('keydown', function () {
                      if (event.keyCode === 13 && !event.shiftKey && !event.ctrlKey) {
                          event.preventDefault();
                          $(this.form).submit(); // Or whatever
                          return false;
                      } 
                  })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-25
        • 2011-03-17
        • 2014-01-01
        • 2011-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多