skip to Main Content

Jquery:

Is there please an option to start the search only alphabet and number keys have been typed in?

Datatable globally searching should initiate at least with 3 characters

$(document).on('draw.dt','.dataTable', function() {            
    $(".dataTables_filter input").off().on("input keyup", function(e) { 
        // if value length is greater than 3 or user press enter (keycode = 13) on search we will search on datatable
        if(this.value.length >= 3 || e.keyCode == 13 || this.value == "") {
            var dataTable = $('.table').DataTable();
            dataTable.search(this.value).draw();
        }
    }); 
});

2

Answers


  1. Use regular expressions with preg_replace to remove letters other than alpha-numeric on every keyup and then check the length of a string.

    Hope you get the desired result.

    Login or Signup to reply.
  2. Solution:

    Check this solution. I hope, it will work.

    $(document).on('draw.dt','.dataTable', function() { 
        $(".dataTables_filter input").off().on("input keyup", function(e) { 
            // if value length is greater than 3 or user presses enter (keycode = 13) on search 
            // we will search on datatable
            if(this.value.length >= 3 || e.keyCode == 13 || this.value == "") {
                var checkBackspaceEnter =  e.keyCode == 8 || e.keyCode == 13;
                // if user removes a character from search we will search
                var checkAlphabet = (e.keyCode >= 58 && e.keyCode <= 90);   
                // check on alphabets
                var checkNum = (e.keyCode >= 48 && e.keyCode <= 57 
                    || e.keyCode >= 96 && e.keyCode <= 105); 
                // check on number values
                var ctrlCombine = (e.keyCode == 17 || ((e.keyCode == 65 || e.keyCode == 67 ) 
                    && e.ctrlKey)); 
                // don't search when user hits Ctrl+A or Ctrl+C 
                checkAlphabet = ((ctrlCombine == false) ? checkAlphabet : false);   
    
                if (checkAlphabet || checkNum || checkBackspaceEnter) {
                    var dataTable = $('.table').DataTable();
                    dataTable.search(this.value).draw();
                }
            }
        }); 
    });
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search