我有一个动态加载的表单,有一个textarea,我必须在提交之前检查垃圾邮件。所以我写了这样的话:
$(document).ready(function(){
$('form').live('submit',function(){
if ( $('form textarea').val().match(/https?:\/\/|www\.|\.com/) ) {
return false;
}
return true;
})
});
第一次工作正常。但是,如果我再次单击“提交”按钮,则表单将在未经过验证的情况下提交。 SO中已经存在一些相关的问题,但我已经尝试了他们的答案,似乎无法使其发挥作用。我尝试将侦听器附加到文档而不是表单,并使用on
方法而不是live
,但没有运气。任何帮助表示赞赏!
答案 0 :(得分:3)
form
中的$('form textarea')
可能与触发提交事件的表单不同,使用触发事件使用的表单this
$('form').live('submit',function(){
if ( $('textarea', this).val().match(/https?:\/\/|www\.|\.com/) ) {
return false;
}
return true;
})