Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
jqueryajax热键提交_Jquery_Ajax_Hotkeys - Fatal编程技术网

jqueryajax热键提交

jqueryajax热键提交,jquery,ajax,hotkeys,Jquery,Ajax,Hotkeys,我正在尝试设置“Ctrl+Enter”以执行函数update: document.onkeydown = function(e, id){ var keyCode = (window.event) ? e.which : e.keyCode; if (keyCode == 13 && e.ctrlKey) { update(id); } } function update(id) { var title = $("#title"+i

我正在尝试设置“Ctrl+Enter”以执行函数
update

document.onkeydown = function(e, id){
    var keyCode = (window.event) ? e.which : e.keyCode;
    if (keyCode == 13 && e.ctrlKey) {
        update(id);
    }
}
function update(id) {
    var title = $("#title"+id).val();
    var content = $("#content"+id).val();
        $.ajax({
            type: "POST",
            url: url,
            data: {
                aid: id,
                title: title,
                content: content,
            },
            beforeSend : function(){
                alert(content);
            },
            success: function(data){
                $("#view"+id).html(data);
            },

        });  
}
HTML部分:

<input type="text" id="title<?php echo $id ?>" >
<textarea id="content<?php echo $id ?>" ></textarea>

我给你举了一个小的、有效的例子:

$(document).keydown(function(event)
  {
      var currKey=0,e=e||event; 
      currKey=e.keyCode||e.which||e.charCode;

      if (!( currKey == 13 && event.ctrlKey) && !(event.which == 19))
        {
            return true; 
        }    
      event.preventDefault();       
      alert("Ctrl + Enter was pressed"); // Replace this with your update(id);
      return false;
  }); 
在下面的示例中,将焦点放在输入字段上,然后尝试按Ctrl+Enter键查看它的操作

编辑1: 使您的
内容
变量未定义的是它的范围。您可以显式地说
var content
,并将其作用域设置为本地,同时尝试从另一个函数访问它

var content
替换为
content
,您将得到您想要的

说明:

JavaScript有两个作用域:全局和局部。一个变量 在函数定义外部声明的是全局变量,其 值在整个程序中是可访问和可修改的。变数 在函数定义中声明的是局部的。它是被创造出来的 每次执行该函数时都会被销毁,并且不能 由函数外部的任何代码访问。JavaScript不支持 块范围(其中一组大括号{…}定义了一个新范围), 块作用域变量的特殊情况除外


看看我的
编辑1
,它会解决您的问题!要获取目标的id,
e.target.id
。虽然我不知道你为什么要这样做,比如
$(“#content”+id).val()id
未在此函数中传递
document.onkeydown=函数(e,id)
。你怎么能修好它?再次感谢,我已经解决了。阅读您的答案后,我发现var
id
是全局的。我不需要在这个函数中传递它。所以我刚刚删除了param
id
document.onkeydown=function(e)