Как получить ввод из текстовой области в функцию JavaScript? - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь создать латиноамериканский переводчик, который принимает входные данные из текстовой области и отправляет их в мою функцию JavaScript для перевода.Я нажимаю кнопку отправки, и ничего не происходит, когда я пытаюсь это сделать.

Вот мой код JavaScript:

function translate(String sentence) {

  String sentence = document.getElementById("sentence").value;
  int wordStart = -1;
  int wordEnd = -1;
  String letter;

  String fullSentence;
  for (int i = 0; i < sentence.length(); i++) {
    String trans;
    char c = Character.toLowerCase(sentence.charAt(i))

    if (wordStart === -1 && (c !== ' ' || c !== '.' || c !== ',' || c !== '!' || c !== '?')) {
      wordStart = i;
      letter = c;
    }

    if (wordEnd === -1 && (c === ' ' || c === '.' || c === ',' || c === '!' || c === '?' || i === sentence.length() - 1)) {
      wordEnd = i;
    }

    if (wordStart !== -1 && wordEnd !== -1 && (letter !== 'a' || letter !== 'e' || letter !== 'i' || letter !== 'o' || letter !== 'u')) {
      trans = sentence.subString(wordStart + 1, wordEnd) + letter + "ay";

      wordStart = -1;
      wordEnd = -1;
    }

    if (wordStart !== -1 && wordEnd !== -1 && (letter === 'a' || letter === 'e' || letter === 'i' || letter === 'o' || letter === 'u')) {
      trans = sentence.subString(wordStart, wordEnd) + "way";

      wordStart = -1;
      wordEnd = -1;
    }

    fullSentence = fullSentence + trans + " ";
  }

  document.getElementById("output").innerHTML = fullSentence;

}
<div style="font-size: 25pt; text-align: center">Pig Latin Translator</div><br /><br />

<div style="font-size: 15pt; text-align: center">

  Enter text to be translated:

  <form id="piglatin" action="">
    <textarea id="sentence" rows="5" cols="30"></textarea><br />

    <input type="button" name="submit" value="Submit" onclick="translate('sentence')" />
  </form>

</div>

<div id="output"></div>

По сути, я не уверен, что проблема в том, где я пытаюсь отправить информацию в свою функцию JS или проблема в JSфункция.

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Ваш код на Java, а не на JavaScript.

Код можно переписать, например, следующим образом (синтаксически).Я боюсь, он не делает то, что вы ожидаете, но он работает, и браузер понимает это.

function translate() {

  var sentence = document.getElementById("sentence").value;
  var wordStart = -1;
  var wordEnd = -1;
  var letter;

  var fullSentence;
  for (var i = 0; i < sentence.length; i++) {
    var trans;
    var c = sentence.charAt(i).toLowerCase();

    if (wordStart === -1 && (c !== ' ' || c !== '.' || c !== ',' || c !== '!' || c !== '?')) {
      wordStart = i;
      letter = c;
    }

    if (wordEnd === -1 && (c === ' ' || c === '.' || c === ',' || c === '!' || c === '?' || i === sentence.length - 1)) {
      wordEnd = i;
    }

    if (wordStart !== -1 && wordEnd !== -1 && (letter !== 'a' || letter !== 'e' || letter !== 'i' || letter !== 'o' || letter !== 'u')) {
      trans = sentence.substring(wordStart + 1, wordEnd) + letter + "ay";

      wordStart = -1;
      wordEnd = -1;
    }

    if (wordStart !== -1 && wordEnd !== -1 && (letter === 'a' || letter === 'e' || letter === 'i' || letter === 'o' || letter === 'u')) {
      trans = sentence.substring(wordStart, wordEnd) + "way";

      wordStart = -1;
      wordEnd = -1;
    }

    fullSentence = fullSentence + trans + " ";
  }

  document.getElementById("output").innerHTML = fullSentence;

}

Поиск некоторого приличного учебника по JS, как упомянуто в других ответах, поможет.

Счастливое кодирование

Вы можете поэкспериментировать с функцией javascript для фрагмента вашей страницы здесь, в JSFidddle Я создал.

0 голосов
/ 22 ноября 2018

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

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
</head>

<body>
  <div style="font-size: 25pt; text-align: center">Pig Latin Translator</div>
  <br /><br />

  <div style="font-size: 15pt; text-align: center">
    Enter text to be translated:
    </br>
    <textarea id="sentence" rows="5" cols="30"></textarea><br />
    <button onclick="Translate()">Submit</button>
  </div>

  <div id="output"></div>

  <script type="text/javascript">
    function Translate() {
      var sentence = document.getElementById("sentence").value;
      var wordStart = -1;
      var wordEnd = -1;
      var letter;
      var fullSentence;
      for (let i = 0; i < sentence.length; i++) {
        var trans;
        var c = sentence.charAt(i).toLowerCase();
        if (wordStart === -1 && (c !== " " || c !== "." || c !== "," || c !== "!" || c !== "?")) {
          wordStart = i;
          letter = c;
        }

        if (
          wordEnd === -1 &&
          (c === " " || c === "." || c === "," || c === "!" || c === "?" || i === sentence.length - 1)
        ) {
          wordEnd = i;
        }

        if (
          wordStart !== -1 &&
          wordEnd !== -1 &&
          (letter !== "a" || letter !== "e" || letter !== "i" || letter !== "o" || letter !== "u")
        ) {
          trans = sentence.substring(wordStart + 1, wordEnd) + letter + "ay";
          wordStart = -1;
          wordEnd = -1;
        }

        if (
          wordStart !== -1 &&
          wordEnd !== -1 &&
          (letter === "a" || letter === "e" || letter === "i" || letter === "o" || letter === "u")
        ) {
          trans = sentence.substring(wordStart, wordEnd) + "way";
          wordStart = -1;
          wordEnd = -1;
        }

        fullSentence = fullSentence + trans + " ";
      }
      document.getElementById("output").innerHTML = fullSentence;
    }
  </script>
</body>

</html>
0 голосов
/ 22 ноября 2018

Откройте Инструменты разработчика в вашем браузере.Посмотрите на Консоль.Вы увидите многочисленные сообщения об ошибках.

Похоже, вы пишете на Java, но JavaScript - это совершенно другой язык программирования, имеющий немного больше общего с Java, чем Carpet с Car.

Вопрос, который вы задаете в названии, является одной из тех вещей, которые вы на самом деле получили правильно: document.getElementById("sentence").value;

В MDN есть несколько вводных руководств по JavaScript .Вы должны изучать этот язык, а не просто писать на Java.

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