"input type =" submit "" не отображается как кнопка - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь создать веб-приложение для викторины, в которое тест вводится через форму, а затем вводится в текстовый файл.это будет затем прочитано из текстового файла пользователю отдельно.Моя кнопка отправки не работает, однако, я выложил ее неправильно?Идея состоит в том, чтобы затем читать текстовый файл построчно, вызывая значения, определяемые этими строками, и отображая параметры в формате радио на отдельной веб-странице.Кроме того, я хочу добавить новую кнопку под названием «добавить вопрос», которая добавляет вопрос и 3 текстовых сообщения ответа в нижней части формы, что делает его отзывчивым для пользователя.Должен ли я сделать целую форму функцией и вызвать ее?

function WriteToFile(passForm) {

  set fso = CreateObject("Scripting.FileSystemObject");
  set s = fso.CreateTextFile(“using theseee / this.txt ", True);

      var year = document.getElementById(‘year’);
      var class = document.getElementById(‘class’);
      var topic = document.getElementById(‘topic’);
      var title = document.getElementById(‘title’);
      var question = document.getElementById(‘question’);
      var option1 = document.getElementById(‘answer1’);
      var option2 = document.getElementById(‘answer2’);
      var option3 = document.getElementById(‘answer3’);

      s.writeline(“Title: " + title);
        s.writeline(“Question: " + question);
          s.writeline(“Option1: " + answer1);
            s.writeline(“Option2: " + answer2);
              s.writeline(“Option3: " + answer3);

                s.writeline("-----------------------------"); s.Close();
              }
<html>

<head>
  <title>Quiz Form</title>
  <link rel=“stylesheet” href=“TRYstyle.css”>
</head>

<body>

  <h3>Quiz form</h3>

  <table>
    <form onSubmit=“WriteToFile(this.txt)”>
      <tr>
        <td>Title</td>
        <td><input type=“text” placeholder=“Title” name=“title” id=“title” maxlength=“200”/></td>
      </tr>

      <tr>
        <td>Question</td>
        <td><input type=“text” placeholder=“Question” name=“question” id=“question” maxlength=“200”/></td>
      </tr>

      <tr>
        <td>Answer</td>
        <td><input type=“text” placeholder=“Answer” name=“answer1” id=“answer1” maxlength=“200”/></td>
      </tr>

      <tr>
        <td>Answer</td>
        <td><input type=“text” placeholder=“Answer” name=“answer2” id=“answer2” maxlength=“200”/></td>
      </tr>

      <tr>
        <td>Answer</td>
        <td><input type=“text” placeholder=“Answer” name=“answer3” id=“answer3” maxlength=“200”/></td>
      </tr>

      <tr>
        <input type=“submit” value=“Submit”>
      </tr>
    </form>
  </table>
</body>

</html>

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Ваши двойные кавычки неверны.

Вот как это выглядит:

<input type=“submit” value=“Submit”>

Вот как это должно быть:

<input type="submit" value="Submit">

Из-за этих двойных кавычек, тип не распознается и по умолчанию тип ввода текста.Вот почему у вас есть эта проблема.

0 голосов
/ 04 марта 2019

У вас было несколько проблем.

  • Сначала использование правильных кавычек помогает решить множество проблем.
  • Поместите кнопку отправки в элемент td, чтобы она не помещаласьнепосредственно в строку.
  • Вы использовали class в качестве имени переменной в вашем JavaScript, что недопустимо.

function WriteToFile(passForm) {

    //No Idea what this is. Wont work in snippet
    //set fso = CreateObject("Scripting.FileSystemObject");
    //set s = fso.CreateTextFile(“using theseee / this.txt ", True);

    //use the correct quotes
    var year = document.getElementById('year');
    //it's not allowed to use class as a variable
    var classEl = document.getElementById('class');
    var topic = document.getElementById('topic');
    var title = document.getElementById('title');
    var question = document.getElementById('question');
    var option1 = document.getElementById('answer1');
    var option2 = document.getElementById('answer2');
    var option3 = document.getElementById('answer3');

    //use the correct quotes
    console.log("Title: " + title);
    console.log("Question: " + question);
    console.log("Option1: " + answer1);
    console.log("Option2: " + answer2);
    console.log("Option3: " + answer3);
    console.log("-----------------------------"); s.Close();
  }
<html>

<head>
  <title>Quiz Form</title>
  <link rel=“stylesheet” href=“TRYstyle.css”>
</head>

<body>

  <h3>Quiz form</h3>

  <table>
    <form onSubmit="WriteToFile(this.txt)">
      <tr>
        <td>Title</td>
        <td><input type="text" placeholder="Title" name="title" id="title" maxlength="200"/></td>
      </tr>

      <tr>
        <td>Question</td>
        <td><input type="text"  placeholder="Question" name="question" id="question" maxlength="200"/></td>
      </tr>

      <tr>
        <td>Answer</td>
        <td><input type="text"  placeholder="Answer" name="answer1" id="answer1" maxlength="200"/></td>
      </tr>

      <tr>
        <td>Answer</td>
        <td><input type="text"  placeholder="Answer" name="answer2" id="answer2" maxlength="200"/></td>
      </tr>

      <tr>
        <td>Answer</td>
        <td><input type="text"  placeholder="Answer" name="answer3" id="answer3" maxlength="200"/></td>
      </tr>

      <tr>
        <td colspan="2">
          <input type="submit">
        </td>
      </tr>
    </form>
  </table>
</body>

</html>
0 голосов
/ 04 марта 2019

Ваш HTML-код недействителен.

Форма не может быть дочерним элементом элемента таблицы, а входные данные не могут быть дочерними элементами элемента строки таблицы.

Дочерними элементами строки таблицы могут быть только ячейки таблицы.

Кроме того, нельзя использовать (LEFT DOUBLE QUOTATION MARK) для разграничения значений атрибутов.Только " (МАРКА ЦИТАТЫ) или ' (АПОСТРОФ).

Используйте валидатор .


В стороне: как только вы решите эту проблему, выобнаружьте, что Scripting.FileSystemObject недоступен для веб-браузеров.Вы не можете писать в произвольные файлы с помощью браузера JS.

...