Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使内联编辑在不按enter键的情况下自动发送?_Php_Javascript_Jquery_Inline - Fatal编程技术网

Php 如何使内联编辑在不按enter键的情况下自动发送?

Php 如何使内联编辑在不按enter键的情况下自动发送?,php,javascript,jquery,inline,Php,Javascript,Jquery,Inline,我有一个网站,你可以通过点击表格单元格进行内联编辑。单击并键入字符串后,需要按enter键以更新数据。我的问题是,我想在不按enter键的情况下自动发送数据。我应该用什么关键事件来处理这个问题?按键?如何删除enter键事件 $('td.edit').keydown(function(event){ arr = $(this).attr('class').split( " " ); if(event.which == 13)

我有一个网站,你可以通过点击表格单元格进行内联编辑。单击并键入字符串后,需要按enter键以更新数据。我的问题是,我想在不按enter键的情况下自动发送数据。我应该用什么关键事件来处理这个问题?按键?如何删除enter键事件

 $('td.edit').keydown(function(event){
            arr = $(this).attr('class').split( " " );
            if(event.which == 13)
            { 
                        $.ajax({type: "POST",
                        url: "../../controller/inline.php",
                        data: "value="+$('.ajax input').val()+"&rownum="+arr[2]+"&field="+arr[1]+"&ids="+'<?php echo isset($_POST['frmID'])?$_POST['frmID']:$_GET['id']; ?>'+"&dFrom="+'<?php echo isset($_POST['frmDateFrom']) ? $_POST['frmDateFrom']:date('n\/j\/Y', strtotime("-15 days")); ?>'+"&dTo="+'<?php echo isset($_POST['frmDateTo'])?$_POST['frmDateTo']:date('n\/j\/Y'); ?>',
                        success: function(data){
                            $('.ajax').html($('.ajax input').val());
                            $('.ajax').removeClass('ajax');
                                            }});


            }
});
$('td.edit').keydown(函数(事件){
arr=$(this.attr('class').split(“”);
if(event.which==13)
{ 
$.ajax({type:“POST”,
url:“../controller/inline.php”,
数据:“value=“+$('.ajax input').val()+”&rownum=“+arr[2]+”&field=“+arr[1]+”&ids=“++'+”&dFrom=“++'+”&dTo=“+”,
成功:功能(数据){
$('.ajax').html($('.ajax输入').val());
$('.ajax').removeClass('ajax');
}});
}
});

我相信onBlur事件正是您想要的

嗯,我也经历过同样的情况

你真的需要自动保存吗

简单的解决方案可能是“focusout()”或“onBlur()”

但这太冒险了

这意味着只需一次未命中的点击或未命中的按键即可触发保存事件

如果有多个列要输入某些内容

不要那样做

但只需单列,请尝试“onBlur()”或“focusout()”

我将等待你明智的解决办法3

您可以做的(尽管我不建议这样做)是使用setTimeout来保存数据。这样,用户可以不保存而继续键入,但一旦他停止键入一秒钟左右,它就会保存数据

请看下面的示例():


你如何知道用户何时停止键入?除非你对更新进行过多限制,否则你将杀死你的服务器。我将知道用户何时单击网页你的意思是输入失去焦点吗?是的,正是我的意思-@dragon永远不会链接到w3schoolsFair。这恰好是谷歌的一个顶级结果,我很懒。我试过模糊,我认为这不是一个好主意,因为现在我正在focusout上做实验
 var timer; 

 $('input').keyup(function() {
      if (timer !== null) {
         clearTimeout(timer);
         timer = null;
      }

      timer = setTimeout(function() {
          $.ajax({
              type: "POST",
              url: "../../controller/inline.php",
              data: "[your-data]",
              success: function(data){
                  $('.ajax').html($('.ajax input').val());
                  $('.ajax').removeClass('ajax');
              }
          });
      }, 1000);
  });