代码之家  ›  专栏  ›  技术社区  ›  lyrch

jQuery/Rails:如何使用jQuery修改Rails中以唯一id结尾的多个表单的submit?

  •  0
  • lyrch  · 技术社区  · 14 年前

    我有一个页面,为我在上一页上选择的每个对象创建多个表单,每个表单的id都是“edit\u movie\uuid]”。我试图让jQuery对submit执行操作,但现在它所做的只是使我的submit按钮没有响应。在我的application.js 我有:

    jQuery.ajaxSetup({
       'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
     })
    
     $(document).ready(function(){
    
       $('form[id^="edit_mov"]').submit(function(){
          $.post($(this).attr('action'), $(this).serialize(), null, 'script');
          return false;
       })
     })
    

    作为“提交”按钮的回拨,我只有:

    alert("jquery works");
    

    所以应该弹出一个警告框,但是现在没有一个按钮做任何事情,其中一些按钮是不可点击的。

    1 回复  |  直到 14 年前
        1
  •  1
  •   aceofspades    14 年前

    看起来您正在就绪块中触发事件,而不是绑定它。您可以使用bind,或者更好的方法是delegate。另外,请避免多次拨打$():

    $(function() { // Shorthand for $(document).ready()
      //$('form[id^="edit_mov"]').bind('submit', function() {
      $(document).delegate('form[id^="edit_mov"]', 'submit', function() {
        var form = $(this);
        console.log('submit triggered', form);
        $.post(form.attr('action'), form.serialize(), null, 'script');
        return false;
      })
    })