使用.on在动态加载的表单上捕获提交

时间:2012-11-12 15:19:04

标签: ajax jquery

我有一个表单,我通过ajax加载到弹出窗口。表单定义如下:

<form id="generate_form" class="form" accept-charset="UTF-8" action="/tokens/create" method="POST">

我想捕获表单提交,然后使用AJAX提交数据。所以我添加了以下脚本:

  $(document).ready(function () {
    $(this).on('submit','#generate-form', function (e) {
      alert('trapped?');
      return false;
    });
  });

然而,当我尝试这个时,表格事件没有被捕获,即我从未看到警报对话。我做错了吗?

3 个答案:

答案 0 :(得分:3)

你的代码可能因为2个缺少关闭括号而破裂

  $(document).ready(function () {
    $(this).on('submit','#generate_form', function (e) {
      alert('trapped?');
      return false;
    }); // <-- added closing parentheses
  }); // <-- added closing parentheses

答案 1 :(得分:3)

你拼错了"#generate-form"(下划线而不是破折号)并忘记了一些括号:

$(document).ready(function () {
    $(this).on('submit', '#generate_form', function (e) {
        alert('trapped?');
        return false;
    });
});

答案 2 :(得分:1)

差不多......:{D

$('#generate_form').on('submit', function(e) {

    alert('trapped?');

    e.preventDefault();
    return false;
});

我还建议退房jQuery's .on() Documentation - 那里有很多有用的例子。