我尝试使用 JavaScript 来确保标签中的四个输入都相互匹配,如果匹配则提交表单或至少允许表单提交。但是,即使满足 else 条件,表单也不会提交。
$(document).ready(function() {
$('#bca').submit(function(e) {
var form = bca;
e.preventDefault();
// Check Passwords are the same
if ($('#InitialsP1').val() != $('#InitialsP2').val() || $('#InitialsP2').val() != $('#InitialsP3').val()) {
alert('Fields do not match. Correct Fields where necessary');
} else {
document.getElementById("bca").submit();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="invoice-box">
<form id="bca" action="bca" method="post">
<input id="InitialsP1" name="InitialsP1" type="text"
placeholder="Initials" size="5" value="" required
style=”float: right”>
<input id="InitialsP2" name="InitialsP2" type="text"
placeholder="Initials" size="5" value="" required
style=”float: right”>
<input id="InitialsP3" name="InitialsP3" type="text"
placeholder="Initials" size="5" value="" required
style=”float: right”>
<input id="InitialsP4" name="InitialsP4" type="text"
placeholder="Initials" size="5" value="" required
style=”float: right”>
<div class="form-group">
<div class="col-md-12 text-center">
<button id="submit" type="submit" class="btn btn-primary btn-lg">Submit</button>
</div>
</div>
</form>
</div>
您遇到的初始问题是
onclick="getSignature();"
由于它不存在而引发错误。当您提交表单时,您还会在控制台日志中收到错误“提交不是函数”(您可以从代码片段中提交表单时看到此错误):
这与提交按钮上的 id="submit" 存在某种冲突,导致表单无法提交。如果您将提交按钮 html 更改为
它应该可以工作。
您的表单已经使用自动 HTML5 验证(使用属性
required
),您必须在 4 个元素上添加相等性验证。
操作如下:
如果您想先进行验证,然后提交表单,因此可以通过将提交事件更改为按钮的单击事件来完成。
并且不需要 onclick="getSignature();"