代码赢得';将javascript代码合并到一个函数中时不起作用

代码赢得';将javascript代码合并到一个函数中时不起作用,javascript,php,Javascript,Php,大家好 我在将代码合并到一个函数中时遇到问题。(如果可能的话) 第一: 有一张桌子 当表格行单击时,将启用两个按钮 代码如下: function enableRegButton() { $('#registerExist').prop('disabled', false); $('#edit').prop('disabled', false); // regButton execute when Enter key pressed

大家好

我在将代码合并到一个函数中时遇到问题。(如果可能的话)

第一:

  • 有一张桌子
  • 当表格行单击时,将启用两个按钮
代码如下:

   function enableRegButton() {
        $('#registerExist').prop('disabled', false);
        $('#edit').prop('disabled', false);

        // regButton execute when Enter key pressed
        $(document).unbind("keyup").keyup(function(e){ 
            var code = e.which; // recommended to use e.which, it's normalized across browsers
            if(code==13)
            {
                $("#registerExist").click();
            }
        });
    }
   $(document).keyup(function(e) {
         if (e.keyCode == 27) { // escape key maps to keycode `27`
            $('#registerExist').prop('disabled', true);
            $('#edit').prop('disabled', true);
            document.getElementById("enStudID").value = "";
            document.getElementById("enInfoID").value = "";
            document.getElementById("enCoffID").value = "";
            document.getElementById("enYearID").value = "";
        }
    });
第二:

  • 当按下退出键时,将禁用所有绑定按钮
代码如下:

   function enableRegButton() {
        $('#registerExist').prop('disabled', false);
        $('#edit').prop('disabled', false);

        // regButton execute when Enter key pressed
        $(document).unbind("keyup").keyup(function(e){ 
            var code = e.which; // recommended to use e.which, it's normalized across browsers
            if(code==13)
            {
                $("#registerExist").click();
            }
        });
    }
   $(document).keyup(function(e) {
         if (e.keyCode == 27) { // escape key maps to keycode `27`
            $('#registerExist').prop('disabled', true);
            $('#edit').prop('disabled', true);
            document.getElementById("enStudID").value = "";
            document.getElementById("enInfoID").value = "";
            document.getElementById("enCoffID").value = "";
            document.getElementById("enYearID").value = "";
        }
    });
现在,我想做的是,上面的两个代码将合并到一个函数中,它将调用该函数并触发所有这些代码,所以当我编辑代码时,它将被集中化

这是我的最终代码:

function enableRegButton() {
        $('#registerExist').prop('disabled', false);
        $('#edit').prop('disabled', false);

        // regButton execute when Enter key pressed
        $(document).unbind("keyup").keyup(function(e){ 
            var code = e.which; // recommended to use e.which, it's normalized across browsers

            settings();

        });
    }
// This code is for ESC button when pressed.
$(document).keyup(function(e) {

         settings();
    });

function settings(){
        if(code==13)
        {
            $("#registerExist").click();
        }
        else if (code==27){ // escape key maps to keycode `27`
            $('#registerExist').prop('disabled', true);
            $('#edit').prop('disabled', true);
            document.getElementById("enStudID").value = "";
            document.getElementById("enInfoID").value = "";
            document.getElementById("enCoffID").value = "";
            document.getElementById("enYearID").value = "";
        }
    }
问题:

  • 单击表格行时,只有启用按钮起作用
  • 按退出键不会禁用已启用的按钮
  • 按Enter键时,代码不会运行

您需要将密钥代码传递给
设置方法

$(document).keyup(function(e) {
    settings(e.keyCode);
});

function settings(code) {

在调试Javascript问题时,使用浏览器的开发人员控制台,这是一个非常宝贵的工具,可以很容易地解决类似的问题。

您需要将关键代码传递给
设置
方法

$(document).keyup(function(e) {
    settings(e.keyCode);
});

function settings(code) {

调试Javascript问题时,使用浏览器的开发人员控制台,这是一个非常宝贵的工具,可以很容易地解决类似的问题。

您在取消绑定回调中分配
code
变量,而不是在绑定回调中:)

您在取消绑定回调中分配
code
变量,不在绑定回调中:)

您有多少个按钮?两行还是两行?添加html输出示例可能会有所帮助。您有多少个按钮?两行还是两行?添加html输出示例可能会有所帮助。我建议使用
e.which
,因为他们已经在使用jQuery,以避免任何跨浏览器问题。感谢Daniel Bernson的回复,它可以工作!另外对于Archer:-)顺便说一句,我只是在编码时混淆了Javascript和JQuery的差异(lol),所以我把标签放在Javascript上。@Daniel Bersons你是说chrome中的Inspect元素吗?@Daniel Bersons哦!我看到了。。。谢谢你的提示!现在调试javascript很容易了。我建议使用
e.which
,因为他们已经在使用jQuery,以避免任何跨浏览器问题。感谢Daniel Bernsons的回复,它可以工作了!另外对于Archer:-)顺便说一句,我只是在编码时混淆了Javascript和JQuery的差异(lol),所以我把标签放在Javascript上。@Daniel Bersons你是说chrome中的Inspect元素吗?@Daniel Bersons哦!我看到了。。。谢谢你的提示!现在调试javascript就很容易了。