It is not possible to provide the text in the input when moving on the table by using the commando control button



  • Hello, everyone! There's a table with a lot of input type=text. He's been moving through them with a cadet control key. An automatic release of the text in the input should be effected by emulating the event of the html event. To date, this has not been possible. With real click, the contents of the input are released. When the buttons move, no. I tried to make it through $('#input_id').select() it didn't work. And then bind and trigger, it didn't work either. What's wrong?

    Option 1:

    $(':input').on('keydown', function(e) {
        switch(e.keyCode) {
            // Пользователь нажимает на клавишу «стрелка влево»
            case 37:
                if ((parseInt(input_id) - 1) > 0 && (parseInt(input_id) - 1) < max_input_id) {
                input_id = parseInt(input_id) - 1;
    
            $('#' + input_id).focus(); // Перемещаем фокус на input слева
    
            $('#' + input_id).select(); // Пытаемся выделить текст в input
        };
    break;
    // Пользователь нажимает на клавишу «стрелка вверх»
    case 38:
        if ((parseInt(input_id) - 31) &gt; 0 &amp;&amp; (parseInt(input_id) - 31) &lt; max_input_id) {
            input_id = parseInt(input_id) - 31;
            $('#' + input_id).focus();
        };
    break;
    // Пользователь нажимает на клавишу «стрелка вправо»
    case 39:
        if ((parseInt(input_id) + 1) &gt; 0 &amp;&amp; (parseInt(input_id) + 1) &lt; max_input_id) {
            input_id = parseInt(input_id) + 1;
            $('#' + input_id).focus();
        };
    break;
    // Пользователь нажимает на кнопку «стрелка вниз»
    case 40:
        if ((parseInt(input_id) + 31) &gt; 0 &amp;&amp; (parseInt(input_id) + 31) &lt; max_input_id) {
            input_id = parseInt(input_id) + 31;
            $('#' + input_id).focus();
        };
    break;
    

    }
    };

    Option 2:

    $(':input').on('keydown', function(e) {
    switch(e.keyCode) {
    // Пользователь нажимает на клавишу «стрелка влево»
    case 37:
    if ((parseInt(input_id) - 1) > 0 && (parseInt(input_id) - 1) < max_input_id) {
    input_id = parseInt(input_id) - 1;

            $('#' + input_id).bind('click', function() {
                $('#' + input_id).select();
            });
    
            $('#' + input_id).trigger('click');
        };
    break;
    // Пользователь нажимает на клавишу «стрелка вверх»
    case 38:
        if ((parseInt(input_id) - 31) &gt; 0 &amp;&amp; (parseInt(input_id) - 31) &lt; max_input_id) {
            input_id = parseInt(input_id) - 31;
            $('#' + input_id).focus();
        };
    break;
    // Пользователь нажимает на клавишу «стрелка вправо»
    case 39:
        if ((parseInt(input_id) + 1) &gt; 0 &amp;&amp; (parseInt(input_id) + 1) &lt; max_input_id) {
            input_id = parseInt(input_id) + 1;
            $('#' + input_id).focus();
        };
    break;
    // Пользователь нажимает на кнопку «стрелка вниз»
    case 40:
        if ((parseInt(input_id) + 31) &gt; 0 &amp;&amp; (parseInt(input_id) + 31) &lt; max_input_id) {
            input_id = parseInt(input_id) + 31;
            $('#' + input_id).focus();
        };
    break;
    

    }
    };



  • Probably from asynchronous work. select and focusAction select It works sooner... it's a caste example. ♪ ♪

    $(document).ready(function() {
      $('input').on('keydown', function(e) {
        var x = parseInt($(this).attr("data-id"));
        switch (e.keyCode) {
          case 37:
            if (x - 1 >= 0) {
              var z = x - 1;
              $('[data-id="' + z + '"]').focus();
              foo($('[data-id="' + z + '"]'));
            }
            break;
    
      case 38:
        if (x - 4 &gt;= 0) {
          var z = x - 4;
          $('[data-id="' + z + '"]').focus();
          foo($('[data-id="' + z + '"]'));
        }
    
        break;
    
      case 39:
    
        if (x + 1 &lt;= 8) {
          var z = x + 1;
          $('[data-id="' + z + '"]').focus();
          foo($('[data-id="' + z + '"]'));
    
        }
    
        break;
    
      case 40:
        if (x + 4 &lt;= 8) {
          var z = x + 4;
          $('[data-id="' + z + '"]').focus();
          foo($('[data-id="' + z + '"]'));
        }
        break;
    
    };
    

    });

    function foo(a) {

    window.setTimeout(function() {
      a.select();
    }, 10);
    

    };

    });

    inp
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" data-id="1" value="111111">
    <input type="text" data-id="2" value="2222">




Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2