jQuery on submit只触发一次

时间:2013-05-20 22:25:42

标签: javascript jquery

我有一个动态加载的表单,有一个textarea,我必须在提交之前检查垃圾邮件。所以我写了这样的话:

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

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

1 个答案:

答案 0 :(得分:3)

form中的$('form textarea')可能与触发提交事件的表单不同,使用触发事件使用的表单this

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