我有一个使用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;
}
});
答案 0 :(得分:2)
您应该可以通过禁用事件的默认操作来阻止表单提交:
$('#mc-embedded-subscribe-form').on('submit', function (e) {
e.preventDefault();
. . .
});
您可以阻止它立即触发,然后再手动触发提交,或者只有在出现错误的情况下才能调用preventDefault()。