0

我想阻止用户在表单中提交数据,但是当我用 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 函数中尝试一条警报消息,但没有奏效。

4

2 回答 2

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.connect(form, "onsubmit", function(evt) {
    evt.preventDefault();
    window.history.back();
});
于 2013-03-15T19:27:55.667 回答
-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回调方法中存在语法错误。

于 2013-03-15T19:37:50.810 回答