javascript автоклик не похоже на автоклик - PullRequest
1 голос
/ 16 февраля 2020

Я действительно новичок в javascript и jquery, и я пытаюсь получить кнопку для автоматического клика из существующей кодовой базы. У меня возникают проблемы с получением кнопки, чтобы сделать это, даже если я следовал этому примеру Как автоматически нажать кнопку ввода .

Код ниже. Я пытался использовать и .submit(), и .click(), но start-game-btn, похоже, ни в коем случае не давил. Я поместил console.log внутри кнопки, когда она нажата, и сообщение, похоже, не регистрируется.

console.log("loading...")

$(() => {

  $("#start-game-btn").click(event => {
    console.log("start-game")
    $("#errors").text("")
    event.preventDefault()
    const height = parseInt($("#height").val())
    const width = parseInt($("#width").val())
    const food = parseInt($("#food").val())
    let MaxTurnsToNextFoodSpawn = 0
    if ($("#food-spawn-chance").val()) {
      MaxTurnsToNextFoodSpawn = parseInt($("#food-spawn-chance").val())
    }
    const snakes = []

    $(".snake-group").each(function() {
      const url = "http://0.0.0.0:8080/"//$(".snake-url", $(this)).val()
      console.log(url)
      if (!url) {
        return
      }
      snakes.push({
        name: "M1",//$(".snake-name", $(this)).val(),
        url
      })
    })
    if (snakes.length === 0) {
      $("#errors").text("No snakes available")
    }
    console.log(12)
    fetch("http://localhost:3005/games", {
      method: "POST",
      body: JSON.stringify({
        width,
        height,
        food,
        MaxTurnsToNextFoodSpawn,
        "snakes": snakes,
      })
    }).then(resp => resp.json())
      .then(json => {
        const id = json.ID
        fetch(`http://localhost:3005/games/${id}/start`, {
          method: "POST"
        }).then(_ => {
          $("#board").attr("src", `http://localhost:3009?engine=http://localhost:3005&game=${id}`)
        }).catch(err => $("#errors").text(err))
      })
      .catch(err => $("#errors").text(err))
  })
  console.log("ready!")
})

window.onload = function(){
    var button = document.getElementById('start-game-btn');
    button.form.submit();
    console.log("Done!!")
}

Каждый раз, когда я обновляю sh страницу, которую показывает журнал:

loading...
ready!
Done!!

Я думаю, что это должно быть ведение журнала (или, по крайней мере, это то, чего я пытаюсь достичь ):

loading...
start-game
ready!
Done!!

1 Ответ

2 голосов
/ 16 февраля 2020

submit() не работает, потому что это для отправки форм.
button.form.submit(); не работает, потому что предполагает, что ваша кнопка является частью формы.
Похоже, вы используете jQuery, попробуйте просто вызвать jQuery функцию щелчка без каких-либо параметров, используя селектор jQuery.
например.
$("#start-game-btn").click();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...