我想在提交之前检查一些表单值。所以我把它放到我的:
<form name="frmcontact" id="frmcontact" method="post" action="<?php echo($action);?>" class="forms" onsubmit="return checkContactsFields()">
这是我的JS功能:
function checkContactsFields(){
var newIdValue = document.forms["frmcontact"]["new_id"].value;
if(newIdValue !== 'ADRESSE NON IDENTIFIE'){
var form = document.forms["frmcontact"].elements;
for(var i = 0; i < form.length; i++) {
if(form[i].name === 'street' || form[i].name === 'cp' || form[i].name === 'town'){
if(form[i].value === ''){
console.log('ok');
document.getElementById('main_error_popup').style.display = 'table-cell';
if(form[i].name === 'street')
errorMsg = 'Voie';
else if(form[i].name === 'cp'){
errorMsg = 'Code Postal';
}else{
errorMsg = 'Ville'
}
document.getElementById('main_error_popup').innerHTML = 'Le champ ' + errorMsg + ' est vide';
return false;
}
}
}
return true;
}
return true;
}
我遇到的问题是,即使返回false语句,表单也会提交..
知道原因吗?
提前致谢
答案 0 :(得分:1)
将preventDefault
添加到功能&amp; submit
使用ajax的表单
在html中
onsubmit="return checkContactsFields(event)"
在js
function checkContactsFields(e){
e.preventDefault()
}
答案 1 :(得分:1)
如果我,铬的快速测试似乎有用 只是做:
function checkContactsFields(){
alert("I won't submit");
return false;
}
https://plnkr.co/edit/yA3hVlDtfUGxSCceqPMY?p=preview
如果您的javascript在执行期间抛出错误,则仍会发生提交。
你的HTML是什么样的?