Reputation: 103
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
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