如何在jquery中单击外部时保存输入

时间:2017-08-04 13:36:06

标签: jquery ajax

我有一张记录表。当用户双击每个Invoke-Command -ComputerName ServerName -ScriptBlock { cmd /c $using:full_path /S } 时,它会转换为<td>,然后在其外部点击后,必须保存。 但问题是当点击特定的<input type="text">时,它会这样做。

<td>

2 个答案:

答案 0 :(得分:1)

这样的东西
window.onclick = function(event) { 
    if (event.target != $('#tmp_ed')){
        //Your saving stuff
    }
}

JSFiddle:https://jsfiddle.net/gss6ezko/

答案 1 :(得分:0)

以下是您的要求的小型工作演示,没有AJAX调用来更新数据库中的input值:

//double click ->then convert to input
var currentEle = '';
$(document).on('dblclick', 'tbody tr td', function(e) {
  e.stopPropagation();
  currentEle = $(this);
  var tmp = $(this).text();
  var name = $(this).attr("data-name");
  $(this).html('<input type="text" id="tmp_ed" value="' + tmp + '"/>');
  $("#tmp_ed").focus();
});

$(document).click(function(e) {
  if ($(e.target).closest('td').length == 0)
    $(currentEle).html($("#tmp_ed").val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>test</td>
  </tr>
</table>