Как Консоль войти весь HTML-форму? - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь сохранить всю форму, но код JavaScript становится слишком длинным.Может кто-нибудь, пожалуйста, помогите мне, как следовать СУХОЙ (не повторяйте себя), потому что я повторил много кода в моем теге скрипта

<form class="form" action="register.jsp" method="post">
<ul class="fieldlist">
    <li>
<label for="simple-input"> UserName < /label> < input id="simple-input1" name="userid" type="text" class="k-textbox" style="width: 100%;" />
 </li>
 <li>
 <label for="simple-input">Password</label>
 <input id="simple-input2" name="pwd" type="password" class="k-textbox" style="width: 100%;" />
        </li>
<li>
<input onclick="myFunction()" id="button" type="submit">
</li> </ul>
</form>

Это мой тег скрипта.Я хочу следовать СУХИМ правилам.Я попытался сохранить значения для каждой отдельной переменной.

    <script>
    var nameInput = document.getElementById('simple-input1');

document.querySelector('form.form').addEventListener('submit', function(e) {

    //prevent the normal submission of the form
    e.preventDefault();

    console.log("Username: " + nameInput.value);
});

 var nameInput1 = document.getElementById('simple-input2');

  document.querySelector('form.form').addEventListener('submit', function (e) {

//prevent the normal submission of the form
e.preventDefault();

console.log("Password: " + nameInput1.value);    
});


</script>

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Вы можете использовать FormData и передать элемент form в качестве параметра.Затем используйте FormData.entries(), чтобы получить итератор всех значений

document.querySelector('form.form').addEventListener('submit', function(e) {
  e.preventDefault();
  const formData = new FormData(this);
  const entires = formData.entries();

  for (var input of entires) {
    console.log(input[0] + ': ' + input[1]);
  }
});
<form class="form" action="register.jsp" method="post">
  <ul class="fieldlist">
    <li>
      <label for="simple-input"> UserName </label> <input id="simple-input1" name="userid" type="text" class="k-textbox" style="width: 100%;" />
    </li>
    <li>
      <label for="simple-input">Password</label>
      <input id="simple-input2" name="pwd" type="password" class="k-textbox" style="width: 100%;" />
    </li>
    <li>
      <input id="button" type="submit">
    </li>
  </ul>
</form>
0 голосов
/ 04 февраля 2019

Вы можете получить элементы формы, используя document.querySelector('form.form').elements

document.querySelector('form.form').addEventListener('submit', function(e) {
  e.preventDefault();
  let x = document.querySelector('form.form').elements;
  console.log("Username: ", x['userid'].value);
  console.log("Password: ", x['pwd'].value);
});
<form class="form" action="register.jsp" method="post">
  <ul class="fieldlist">
    <li>
      <label for="simple-input"> UserName</label>
      <input id="simple-input1" name="userid" type="text" class="k-textbox" style="width: 100%;">
    </li>
    <li>
      <label for="simple-input">Password</label>
      <input id="simple-input2" name="pwd" type="password" class="k-textbox" style="width: 100%;">
    </li>
    <li>
      <input id="button" type="submit">
    </li>
  </ul>
</form>
0 голосов
/ 04 февраля 2019

Оба ваших слушателя слушают одно и то же - отправку.Сделайте ваш код намного проще, объединив их в упрощенный слушатель, используя литералы шаблонов и символы новой строки для console.log():

document.querySelector("form.form").submit = function(e) {
    e.preventDefault();
    console.log(`Username: ${nameInput.value}\nPassword: ${nameInput1.value}`);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...