我已经创建了这个简单的表单设置,我希望验证者在接受表单之前先检查一个字段。但是,无论使用按钮还是输入,似乎都无法使其调用我的validateForm()
函数。曾经有一段时间它可以正常工作,但是将其上传到服务器后,再使用git拉动它,完全停止了再次调用该函数。
我很困惑,因为我的眼睛应该起作用。是否有解决此问题的替代方案,解决方案或解决方法?
function validateForm(e) {
if (document.reg_form.reg_code.value == "unique code value") {
return true;
}
swal({
type: 'error',
title: 'Du har ikke indtastet en gyldig registreringskode.',
showCancelButton: false,
confirmButtonText: 'OK',
confirmButtonColor: '#00a651',
});
e.preventDefault();
return false;
}
<form action="<?= get_home_url(); ?>/create-profile/" method="post" onsubmit="validateForm(event)" name="reg_form" id="reg_form" class="form">
<div class="form__field">
<label for="" class="form__label">Registreringskode</label>
<input type="text" class="form__input" required placeholder="Indtast din tilsendte kode" name="user[reg_code]" id="registration" />
<p class="hidden" id="code_warning">Den indsatte kampagnekode findes ikke!</p>
</div>
<input type="submit" value="Opret bruger" form="reg_form" class="btn btn--green btn--large btn--block">
</form>
答案 0 :(得分:0)
似乎您没有返回任何onsubmit
。
应为onsubmit="return validateForm(event)"
尝试
<form action="<?= get_home_url(); ?>/create-profile/" method="post" onsubmit="return validateForm(event)" name="reg_form" id="reg_form" class="form">
...
</form>
更新:我刚刚注意到您访问表单输入错误,并在控制台中引发错误。
function validateForm(e) {
if (document.reg_form['user[reg_code]'].value == "unique code value") {
}
一种更好的方法是使用其ID直接访问输入。
function validateForm(e) {
if (document.getElementById('registration').value == "unique code value") {
return true;
}
alert("Validation failed");
e.preventDefault();
return false;
}
<form action="" method="post" onsubmit="return validateForm(event)" name="reg_form" id="reg_form" class="form">
<div class="form__field">
<label for="" class="form__label">Registreringskode</label>
<input type="text" class="form__input" required placeholder="Indtast din tilsendte kode" name="user[reg_code]" id="registration" />
<p class="hidden" id="code_warning">Den indsatte kampagnekode findes ikke!</p>
</div>
<input type="submit" value="Opret bruger" form="reg_form" class="btn btn--green btn--large btn--block">
</form>
答案 1 :(得分:0)
Robin C Samuel是对的,该代码上只有可疑的东西缺少回报。但是,当您谈论上传到服务器并签出...确定不忘记将某些文件添加到git中时?要么带有validateForm的文件丢失,要么是带有swal函数的文件(如果提交处理程序中出现错误,例如缺少函数,则javascript将失败,然后浏览器将提交该表单。)
...等等。还有一件事。试试
swal({
type: 'error',
title: 'Du har ikke indtastet en gyldig registreringskode.',
showCancelButton: false,
confirmButtonText: 'OK',
confirmButtonColor: '#00a651'
});