在提交表单时,程序是否未将用户输入记录到控制台?

时间:2018-05-09 13:10:04

标签: javascript jquery html css web

我想知道如何在用户点击“#34;立即注册”后,让程序将用户的输入值记录到控制台。按钮。

1 个答案:

答案 0 :(得分:2)

问题是因为button元素不会引发submit事件。

除此之外,您无论如何都不应该使用过时的on*事件属性。使用不引人注意的事件处理程序,您可以使用addEventListener()附加,如下所示:



function logOptions() {
  var s = document.getElementsByName('Interests')[0];
  var text = s.options[s.selectedIndex].text;
  console.log(text);
}

function logEmail() {
  console.log(document.getElementById('email').value);
}

document.getElementById('inputform').addEventListener('submit', function(e) {
  e.preventDefault();
  logOptions();
  logEmail();
});

<h2>Stay up to date with ecommerce trends <br>with Shopify's newsletter</h2>
<h4>Subscribe for free marketing tips</h4>

<form id="inputform" method="get" action="confirmation.html">
  <input id="email" type="email" placeholder="Email Address" required>
  <button type="submit" id="validate">Sign up now</button>
  <select name="Interests" required>
    <option value="" disabled selected>Interested in..</option>
    <option value="option1">Marketing</option>
    <option value="option2">Option2</option>
    <option value="option3">Option3</option>
    <option value="option4">Option4</option>
  </select>
</form>

<svg>
  <rect width="40" height="3" style="fill: lightgreen" />
</svg>
&#13;
&#13;
&#13;

另请注意,我已将通话添加到preventDefault()。这仅用于测试,以便您可以看到console.log()调用的结果。当您确实希望完成表单提交时,可以在生产代码中删除它。