我有一个表单并在填写表单中的所有字段后启用提交按钮。我使用jquery来禁用按钮也使用提交按钮中的disabled="disabled"
。现在我在浏览器上,按钮显示已禁用。
现在我做了什么,右键单击并检查元素并转到我的注册按钮,然后从HTML中删除disabled=" disabled"
,我的按钮启用而没有填写详细信息,我点击了没有提交的按钮表单。
我只是想知道有没有其他解决方案来处理这个问题?因为任何人都可以启用此功能并在不填写表单的情况下访问它。
你能帮助我吗?
(function() {
$('form > input').keyup(function() {
var empty = false;
$('form > input').each(function() {
if ($(this).val() == '') {
empty = true;
}
});
if (empty) {
$('#register').attr('disabled', 'disabled');
} else {
$('#register').removeAttr('disabled');
}
});
})()

<form>
Username<br />
<input type="text" id="user_input" name="username" /><br />
Password<br />
<input type="password" id="pass_input" name="password" /><br />
Email<br />
<input type="text" id="email" name="email" /><br />
<input type="submit" id="register" value="Register" disabled="disabled" />
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
&#13;
答案 0 :(得分:2)
残疾人的财产很好,但其化妆品或多或少。
有一种简单的方法可以阻止使用JavaScript提交表单提交事件处理程序。您检查是否符合条件 - 否则您取消提交。
答案 1 :(得分:0)
您可以通过简单地修改您的功能来阻止表单提交:
(function() {
$('form > input').keyup(function(e) {
e.preventDefault();
var empty = false;
$('form > input').each(function() {
if ($(this).val() == '') {
empty = true;
}
});
if (empty) {
$('#register').attr('disabled', 'disabled');
} else {
$('#register').removeAttr('disabled');
}
});
})()