laravel - 数据表在按下的回车键上实现ajax

时间:2018-01-14 09:59:08

标签: javascript jquery ajax laravel datatables

因为我正在使用数据表并且有一个cluomn countains输入文本,所以我想使用ajax在此输入字段上获取一些数据,并且仅在按下Enter键时, 我尝试了许多懒惰,但没有和我一起工作,如果我使用模糊或焦点工作正常但需要这只是进入

datatable

  {data: 'vendor_name', name: 'vendors.vendor_name',mRender: function (data, type, row) {                   
return '<input type="text" id="vendor_name" 
   class="vendor_name" data-id="'+row.id+'" onkeydown="myFunction(event)" 
     onClick="this.select();"  value="'+data+'">';}},

javascript

 <script type="text/javascript">
  function myFunction(event) {
 var x = event.keyCode;
var id = $(this).data("id");
 var $row = $(this).closest('tr');
   if (x == 13) 
 { 
    $.ajax({
        type: 'POST',
        url: 'Vendor_Save',
        data: {
            '_token': $('input[name=_token]').val(),
            'currentid': id,
           'current_vendor_name':$(this).val(),
        },
        success: function(data) {
       $row.closest('tr').find('.category_name').val(data.categoryname); 
     $row.closest('tr').find('.vendor_no').val(data.vendorid);                        
        }
     });
     }
        };
    </script>

1 个答案:

答案 0 :(得分:0)

我建议使用axios,甚至vue js而不是纯粹的ajax!

  • 您可以做的是在输入字段时设置事件监听器,并使用keyup触发请求。

var input = document.getElementById("idofyourinput");
input.addEventListener("keyup", function(){
    alert("KeyUp"); // Take out after testing
    $.ajax({
        type: 'POST',
        url: 'Vendor_Save',
        data: {
            '_token': $('input[name=_token]').val(),
            'currentid': id,
           'current_vendor_name':$(this).val(),
        },
        success: function(data) {
            var row = $(input).closest('tr');
            $row.closest('tr').find('.category_name').val(data.categoryname); 
            $row.closest('tr').find('.vendor_no').val(data.vendorid);                        
        }
    });
});
<input type="text" id="idofyourinput"/>