我想阻止用户在表单中提交数据,但是当我使用JavaScript测试它时,它不会返回true。
这是提交按钮:
input type="submit" value="S'inscrire" name="inscrire" onsubmit="return Verifier(this.form);">
这是JS测试函数的代码:
function Verifier()
{
var mdp1 = document.form.mdp.value,
mdp2 = document.form.confirmer.value,
email = document.form.email.value,
pseudo = document.form.pseudo.value;
var testMdpIdentique = (function() {
if(mdp1 == mdp2) return true;
else return false;
})();
if(!testMdpIdentique || mdp1 == "" || mdp2 == "" || email == "" || pseudo== "" )
{
alert ('Il faut remplir tous les champs');
return false;
}
return true;
}
问题是,即使测试无效,它也在提交信息,我试图在Valider函数中尝试一条警报消息,但它没有用。
答案 0 :(得分:2)
在普通的Javascript中
您可以使用函数的返回值来阻止表单提交
<form name="myForm" onsubmit="return validateMyForm();">
和功能类似
<script type="text/javascript">
function validateMyForm()
{
if(check if your conditions are not satisfying)
{
alert("validation failed false");
returnToPreviousPage();
return false;
}
alert("validations passed");
return true;
}
</script>
在jQuery中
$('#form').submit(function (evt) {
evt.preventDefault();
window.history.back();
});
在DOJO
dojo.connect(form, "onsubmit", function(evt) {
evt.preventDefault();
window.history.back();
});
答案 1 :(得分:-1)
我认为以下代码在语法上是不正确的。
var testMdpIdentique = (function() {
if(mdp1 == mdp2) return true;
else return false;
})();
替换为
var testMdpIdentique = function() {
if(mdp1 == mdp2) return true;
else return false;
};
此外,您无需在onClick事件中传递(this.form)。通常,提交按钮会提交表单,因为onClick回调方法中存在语法错误。