移动浏览器上的onsubmit()表单

时间:2015-03-03 13:22:18

标签: javascript forms mobile browser onsubmit

我目前在表单的onsubmit()事件中使用javascript函数来检查所有输入是否都不为空。

这在计算机上工作正常,但在手机上,它会改变背景颜色(正如我想在输入为空时做的那样),但它仍然提交表格!!!

我的表格:

<form id="formContact" action="envoi-message.php" method="post" class="normal" onsubmit="return valideChamps();">
            <div class="ddl">
                <span>VOUS ÊTES...</span>
                <div class="ddlOption">
                    <ul>
                        <li onclick="ddlContact('entreprise')"><span>UNE ENTREPRISE</span></li>
                        <li onclick="ddlContact('ecole')"><span>UNE &Eacute;COLE</span></li>
                        <li onclick="ddlContact('personne')"><span>UNE PERSONNE</span></li>
                    </ul>
                </div>
            </div>
            <input class="cache" type="text" name="entreprise" placeholder="NOM DE L'ENTREPRISE" />
            <input class="cache" type="text" name="ecole" placeholder="NOM DE L'&Eacute;COLE" />
            <input type="text" name="nom" placeholder="VOTRE NOM" />
            <input type="email" name="email" placeholder="VOTRE EMAIL" />
            <textarea name="message" placeholder="VOTRE MESSAGE" ></textarea>
            <input id="btnEnvoi" type="submit" value="Envoyer">
        </form>

我的功能:

    function valideChamps(){
    var bResult = true;
    if ($("input[name*='nom']").val() == "") {
        $("input[name*='nom']").addClass("error");
        bResult = false;
    } else {
        $("input[name*='nom']").removeClass("error");
    }
    if ($("input[name*='email']").val() == "") {
        $("input[name*='email']").addClass("error");
        bResult = false;
    } else {
        var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        if (regex.test($("input[name*='email']").val()) == false ) {
            $("input[name*='email']").addClass("error");
            bResult = false;
        } else {
            $("input[name*='email']").removeClass("error");
        }
    }                                      
    if ($("#formContact textarea").val() == ""){
        $("#formContact textarea").addClass("error");
        bResult = false;
    }else {
        $("#formContact textarea").removeClass("error");
    }
    if ($("div.ddl > span").text().contains("entreprise")){
        if ($("input[name*='entreprise']").val() == "") {
            $("input[name*='entreprise']").addClass("error");
            bResult = false;
        }else {
            $("input[name*='entreprise']").removeClass("error");
        }
    } else if ($("div.ddl > span").text().contains("école")){
        if ($("input[name*='ecole']").val() == "") {
            $("input[name*='ecole']").addClass("error");
            bResult = false;
        }else {
            $("input[name*='ecole']").removeClass("error");
        }
    }
    return bResult;
}

你对错误有什么看法吗? 最好的祝福 奥黛丽

编辑:我更改了提交按钮;如果bResut == true

,我会使用onclick提交表单

2 个答案:

答案 0 :(得分:0)

尝试使用JS将提交处理程序注册到表单,这样您就可以访问该事件并调用preventDefault()而不是(或者除此之外)返回false; 像这样:

document.getElementById('formContact').onsubmit = function(e) {
  //your validateChamps stuff goes here
if(!bResult) e.preventDefault();
};

答案 1 :(得分:0)

编辑:我更改了提交按钮;如果bResut == true

,我会使用onclick提交表单