在带有contenteditable的表行上单击调用jQuery焦点

时间:2016-08-19 13:27:39

标签: javascript jquery ajax

我有一个HTML表格,其中contenteditable设置为true。

现在,当我想保存更改时,我可以点击其他地方(焦点输出),它会保存我的更改。

我想"输入"单击以执行与focusout相同的功能。

到目前为止我尝试了这个但是没有用:

$(document).ready(function(){
  $('td.editable-col').on('focusout', function() {
    data = {};
    data['val'] = $(this).text();
    data['id'] = $(this).parent('tr').attr('data-row-id');
    data['index'] = $(this).attr('col-index');
      if($(this).attr('oldVal') === data['val'])
    return false;

    $.ajax({   

          type: "POST",  
          url: "server.php",  
          cache:false,  
          data: data,
          dataType: "json",       
          success: function(response)  
          {   
            //$("#loading").hide();
            if(response.status) {
              $("#msg").removeClass('alert-danger');
              $("#msg").addClass('alert-success').html(response.msg);
            } else {
              $("#msg").removeClass('alert-success');
              $("#msg").addClass('alert-danger').html(response.msg);
            }
          }   
        });
  });
});

//这就是ENTER键应该调用focusout

$('td.editable-col').on("keydown",function(e){
    var key = e.keyCode || e.charCode;  // ie||others
    if(key == 13)  // if enter key is pressed
        $(this).blur();  // lose focus
});

1 个答案:

答案 0 :(得分:0)

找到解决方案。

 e.preventDefault();

解决了这个问题