Jay M
Jay M

Reputation: 103

javascript form validation not working on chrome & FF

here's the html/javascript code... I've tested it on safari and it works fine but in chrome & FF it doesn't validate at all. it directs me automatically to the action link

 <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>

Thank you in advance.

Upvotes: 1

Views: 1409

Answers (1)

ProllyGeek
ProllyGeek

Reputation: 15866

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()});
});

this might be better , binding submit with validate , would submit the form anyway !

Upvotes: 1

Related Questions