阻止HTML表单使用jQuery提交

时间:2015-06-05 19:41:46

标签: javascript jquery forms mailchimp

我有一个使用mailchimp的订阅表单。

我已经写了一个JS验证方法来阻止hotmail / yahoo / gmail帐户注册我只能让它工作?无论我尝试过什么样的表格动作,JS都会被忽略......

表单标记

<form id="mc-embedded-subscribe-form" class="validate" action="action here" method="post" name="mc-embedded-subscribe-form" novalidate="" target="_blank">

JS Validator

$('#mc-embedded-subscribe-form').on('submit', function (e) {

var inputString = $('#mce-EMAIL').val();
var gmail = "gmail";
var yahoo = "yahoo";
var hotmail = "hotmail";

if (inputString.indexOf(gmail) > -1) {
   alert('Sorry, Gmail accounts are unable to subscribe');
    return false;

} else if (inputString.indexOf(yahoo) > -1) {

    alert('Sorry, Yahoo accounts are unable to subscribe');return false;
} else if (inputString.indexOf(hotmail) > -1) {

    alert('Sorry, Hotmail accounts are unable to subscribe'); return false;
} else {
    return true;
}

});

1 个答案:

答案 0 :(得分:2)

您应该可以通过禁用事件的默认操作来阻止表单提交:

$('#mc-embedded-subscribe-form').on('submit', function (e) {

    e.preventDefault();
    . . .
});

您可以阻止它立即触发,然后再手动触发提交,或者只有在出现错误的情况下才能调用preventDefault()