JAVASCRIPT - 在动态创建的编辑框中拦截键码 13(输入)并将元素传递给不同的函数



Ok..我一直在研究一个演示 CRUD 应用程序,学习一些 Bootstrap 和 JS 基础知识......我几乎得到了我想要的东西,但我需要做的最后一件事是在编辑框中获取键码 13 事件(输入),从而将正确的类发送到已经工作的函数。

一切都是这样的...

$(function() {
  ...
  ...
  $(document).on("blur", "input#editbox", function(){ saveEditable(this) });
});
 function saveEditable(element) { 
        $('#indicator').show();
        var User = new Object();
        User.id = $('.current').attr('user_id');        
        User.field = $('.current').attr('field');
        User.newvalue = $(element).val();
        var userJson = JSON.stringify(User);
        $.post('Controller.php',
            {
                action: 'update_field_data',            
                user: userJson
            },
            function(data, textStatus) {
                $('td.current').html($(element).val());
                $('.current').removeClass('current');
                $('#indicator').hide();         
            }, 
            "json"      
        );  
    }
function makeEditable(element) { 
        $(element).html('<input id="editbox" size="'+  $(element).text().length +'" type="text" value="'+ $(element).text() +'" onkeypress="return checkForEnter(event)">');  
        $('#editbox').focus();
        $(element).addClass('current'); 
}
function checkForEnter(e){
        if (e.keyCode == 13) {
            saveEditable(e);
            return false;
        }
}

它在模糊事件触发时效果很好,但对于 ENTER 来说并不完全存在

这是链接...只需加载表并查看 http://markenriquez.tekcities.com/credapp

advTHNAKSance

您正在传递event作为参数,以从checkForEnter()保存Editable()方法。其中,您应该传递输入字段引用。

试试这个,

    function checkForEnter(e){
            if (e.keyCode == 13) {
                saveEditable(e.target);
                return false;

    }
}

希望这有帮助。

$(window).on("keypress", "input#editbox",function(e){
   if(e.keyCode == 13){
      do_something();
   }
});

附言。文本区域的左上角和左下角是圆角的。

相关内容

最新更新