我有一个表单,如果这个数字小于 15,用户输入一个 cnic 号码,然后提醒一个 msg 并停止表单提交,但问题是当cnic数字小于 15时,表单提交不能停止。
<script>
function validateform()
{
var cnic1 = document.getElementById("cnic1").value;
if (cnic1.length < 15)
{
window.alert("Invalid CNIC");
cnic1.focus();
return false;
}
}
</script>
<form class="col s12" action="tabs.php" method="post" enctype="multipart/form-data" name="applyform">
<div class="row">
<div class="input-field col s1"></div>
<div class="input-field col s4"><label>CNIC No. </label>
<font style="color: #ff0000">*</font>
</div>
<div class="input-field col s6">
<input id="cnic1" name="cnic1" type="text" value="<?php echo $RowAcc['cnic'];?>" maxlength="15" placeholder="CNIC #" required>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
tabs.php页面上写的php提交代码是否存在问题,这就是表单仍在提交过程中的原因?
您无需返回false即可停止提交表单。您需要使用事件的preventDefault()方法,如果数据有效,则使用JS提交表单。像这样:
function validateform(e) { // take the event as parameter
e.preventDefault(); // stop the submission
var cnic1 = document.getElementById("cnic1");
if (cnic1.value.length < 15) {
window.alert("Invalid CNIC");
cnic1.focus();
} else {
form.submit();
}
}
var form = document.getElementsByName('applyform')[0];
form.addEventListener('submit', validateform);
Run Code Online (Sandbox Code Playgroud)
我还使用 JS 添加了侦听器,这样您就可以确保将事件参数传递给您的验证函数。onsubmit="..."从表单中删除。
| 归档时间: |
|
| 查看次数: |
6566 次 |
| 最近记录: |