0

我有一个动态加载的表单,带有一个文本区域,我必须在提交之前检查是否有垃圾邮件。所以我写了这样的东西:

$(document).ready(function(){
    $('form').live('submit',function(){
        if ( $('form textarea').val().match(/https?:\/\/|www\.|\.com/) ) {
            return false;
        }
        return true;
    })
});

它工作正常,第一次。但是,如果我再次单击提交按钮,则表单会在不经过验证的情况下提交。SO中已经有一些相关的问题,但我已经尝试了他们的答案,但似乎无法让它发挥作用。例如,我尝试将侦听器附加到文档而不是表单,并使用on方法而不是live,但还没有运气。任何帮助表示赞赏!

4

1 回答 1

3

formin可能不是触发提交事件的$('form textarea')同一个表单,要使用触发事件的表单使用this

$('form').live('submit',function(){
    if ( $('textarea', this).val().match(/https?:\/\/|www\.|\.com/) ) {
        return false;
    }
    return true;
})
于 2013-05-20T22:34:57.287 回答