提交表单ID而不是类的提交预防工作

时间:2012-06-08 14:27:15

标签: jquery form-submit

此函数正常工作(#new_user是表单的id):

$("#new_user").submit(function(e) {
  e.preventDefault();
  return $(".terms").dialog("open");
});

但是当我尝试添加一个类时,例如:

$("#new_user.team-registration").submit(function(e)

它没有。

如果表单#new_user还有类团队注册或艺术家注册,我怎样才能使它工作?可以只是其中之一。谢谢!

2 个答案:

答案 0 :(得分:3)

因为在实际处理行时没有将类分配给表单元素,所以选择器不返回任何内容......您可以使用.delegate()函数(类似于您预期的那样。) ()以前做)。这是一个例子:

$("body").delegate("#new_user.team-registration, #new_user.artist-registration", "submit", function() {
  return false; // in jQuery this preventsDefault and stops all propagation 
});

或者你可以将表单元素存储在一个变量中,在你向它添加类的位置然后引用它(这样你就不必遍历DOM了两次)..

可以在.delegate()here

上阅读更多内容

答案 1 :(得分:0)

$("#new_user").submit(function(e) {
    if(!$(this).hasClass('team-registration') && !$(this).hasClass('artist-registration')) {
        return;
    }
    e.preventDefault();
    $('.terms').dialog('open');
})