我想知道如何在用户点击“#34;立即注册”后,让程序将用户的输入值记录到控制台。按钮。
答案 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;
另请注意,我已将通话添加到preventDefault()
。这仅用于测试,以便您可以看到console.log()
调用的结果。当您确实希望完成表单提交时,可以在生产代码中删除它。