【发布时间】:2018-06-01 18:17:11
【问题描述】:
我正在尝试使用 Materialize 制作一个表单来验证一封电子邮件。我从一个切换为禁用的提交按钮开始。理想情况下,当电子邮件被填写并验证后,提交按钮将不再被禁用,用户可以单击它进入下一页。这是我的 HTML:
<form id="survey">
<div class="input-group">
<p class="input-header">Enter Your Email</p>
<div class="input-block input-field">
<input id="email" type="text" name= "email" class="validate" required="" aria-required="true">
<label for="email">Email Address</label>
</div>
<br></br>
<a class="waves-light btn red lighten-2 disabled" id="submit">Submit
<i class="material-icons right">send</i>
</a>
<br></br>
<br></br>
<br></br>
</form>
这里是 JavaScript/jQuery:
$(document).ready(function(){
$('.parallax').parallax();
$('body').on('click', '#submit', function() {
let decision = confirm('Are you sure you would like to submit your survey?');
if (decision) {
$.post('insert.php', $('#survey').serialize());
window.location.href = 'thankyou.php';
}
});
$('body').on('click', 'input', function() {
checkValidity($(this));
});
$('body').on('focusout', 'input', function() {
checkValidity($(this));
});
function checkValidity (current) {
let isValid = true;
if (!current.val()) {
isValid = false;
} else {
isValid = iteratatingForm(current);
}
const submit = $('#submit');
if (isValid) {
submit.removeClass('disabled');
} else {
if (!submit.hasClass('disabled')) {
submit.addClass('disabled');
}
}
}
function iteratatingForm (current) {
if (!document.forms['survey']['email'].value) return false;
return true;
}});
请让我知道我做错了什么!谢谢!
【问题讨论】:
-
你能在 CodePen 中重现吗? :)
-
@Toodoo 我之前尝试过 keyup,但没有成功 :( 我会发送 CodePen!
-
由于使用 Materialize 框架 @Toodoo,我在制作 CodePen 时遇到了一些问题
-
codepen.io/anon/pen/zpqKzR 知道了! @Toodoo 感谢您的耐心等待!
标签: javascript jquery html forms materialize