Обработка нескольких операций в одном методе jQuery при нажатии клавиши Enter из текстового поля - PullRequest
0 голосов
/ 05 августа 2020

Я хочу обрабатывать две операции, когда я нажимаю клавишу ввода после ввода текста в одно текстовое поле. Две операции:

  1. Перемещение курсора в следующее текстовое поле
  2. Establi sh последовательная связь с использованием php кода

$(function() {
  $('input:text:first').focus();
  var $inp = $('input:text');
  $inp.bind('keydown', function(e) {
    //var key = (e.keyCode ? e.keyCode : e.charCode);
    var key = e.which;
    if (key == 13) { // Enter key is pressed
      e.preventDefault(); // Prevent the default behaviour of enter key
      var nxtIdx = $inp.index(this) + 1;
      $(":input:text:eq(" + nxtIdx + ")").focus();
      // Ajax query to send request to php
      var test = $("#command-text").val();
      var inputtext = test;
      var command = "1";
      // var mode = $(".common-input mb-20").val();
      $.ajax({
        type: "POST",
        url: "controller.php",
        data: {
          inputtext: inputtext,
          command: command
        },
        cache: false,
        success: function(html) {
          var feedback = "@" + $("#command-text").val() + "#";
          $("#feedback").val(feedback);
        }
      });
    }
  });
});

Когда я пробовал со следующим кодом, выполняется только одна операция, либо курсор переместится в следующее текстовое поле, либо установится sh связь. Пожалуйста, помогите мне решить эту проблему. Код, который я пробовал, выглядит следующим образом

1 Ответ

0 голосов
/ 05 августа 2020

Вы используете неправильный синтаксис, ваше положение скобок неверно, попробуйте следующее:

$(function() {
  $('input:text:first').focus();
  var $inp = $('input:text');
  $inp.bind('keydown', function(e) {
    //var key = (e.keyCode ? e.keyCode : e.charCode);
    var key = e.which;
    if (key == 13) { // Enter key is pressed
      e.preventDefault(); // Prevent the default behaviour of enter key
      var nxtIdx = $inp.index(this) + 1;
      $(":input:text:eq(" + nxtIdx + ")").focus();
      // Ajax query to send request to php
      var test = $("#command-text").val();
      var inputtext = test;
      var command = "1";
      // var mode = $(".common-input mb-20").val();
      $.ajax({
        type: "POST",
        url: "controller.php",
        data: {
          inputtext: inputtext,
          command: command
        },
        cache: false,
        success: function(html) {
          var feedback = "@" + $("#command-text").val() + "#";
          $("#feedback").val(feedback);
        }
      });
    }
  });
});
...