javascript表单验证不适用于chrome& FF

时间:2014-04-17 04:47:53

标签: javascript jquery forms

这里是html / javascript代码...... 我已经在safari上进行了测试,它运行良好,但是在chrome& FF根本没有验证。 它会自动引导我进入行动链接

 <div id="mc_embed_signup">
<form action="http://example.com/subscribe/post?u=f752d10720e6104f1" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">

<input type="email" value="" name="EMAIL" class="text" id="mce-EMAIL" placeholder="Enter you email">
<div style="position: absolute; left: -5000px;"><input type="text" name="b_f752d10720e6104f109250a61_95e4fc5f29" value=""></div>
<input type="submit" value="submit" name="subscribe" id="mc-embedded-subscribe" class="button" >

</form>
</div>
</div>


            </div>

    </div>


<script type="text/javascript">
function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\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,}))$/;
    return re.test(email);
}

function validate(){
  var email = $("#mce-EMAIL").val();
  if (!validateEmail(email)) {
    $("#mce-EMAIL").css("border-color", "red");
      return false;
  }
$("#mce-EMAIL").css("border-color", "#dbdbdb");
return true;
}

$(document).ready(function(){
$("form").bind("submit", validate);
});
</script>

提前谢谢。

1 个答案:

答案 0 :(得分:1)

function validate(){
  var email = $("#mce-EMAIL").val();
  if (!validateEmail(email)) {
    $("#mce-EMAIL").css("border-color", "red");
      return false;
  }
else{
$("#mce-EMAIL").css("border-color", "#dbdbdb");
$("form").submit();
return true;
}
}

$(document).ready(function(){
$("#mc-embedded-subscribe").on("click",function(){ validate()});
});

这可能会更好,使用validate绑定提交,无论如何都会提交表单!