jquery
  • forms
  • 2012-05-11 45 views 11 likes 
    11

    我想发送一个由jquery创建的表单。 表单附加到一个div和下面的变量'数据'是使用PHP创建的,我只会发布最重要的js代码。我尝试了很多事情,并且没有'on()',但是我没有得到警告框显示'1',所以我知道代码块实际上是被执行的.tbh我没有得到我'做错了,任何解释将不胜感激。提前致谢!jquery表单提交.on()

    $(".r5").click(function(event){ 
        var data='<select name="sForum"><option value="1">bla</option></select>'; 
        $(this).parent().next('div').html('<form class="moveform">'+data+'<input type="submit" name="submit" class="movethisform" value="Move Thread" /></form>'); 
    }); 
    $("form.moveform").on("submit",function(event){ 
        alert(1); 
    }); 
    
    +2

    此刻的你正试图将事件处理程序绑定到'form.moveform'时,表格尚不存在。当表单被添加到DOM时,可以使用事件委托或绑定处理程序。 –

    回答

    20

    您在窗体存在之前就绑定了窗体。绑定事件到文档,并通过表格选择到.on

    $(".r5").click(function(event){ 
        var data='<select name="sForum"><option value="1">bla</option></select>'; 
        $(this).parent().next('div').html('<form class="moveform">'+data+'<input type="submit" name="submit" class="movethisform" value="Move Thread" /></form>'); 
    }); 
    $(document).on("submit", "form.moveform", function(event){ 
        alert(1); 
    }); 
    
    0

    你试过

    $("inout.movethisform").on("click",function(event){ 
        alert(1); 
        $("form.moveform").submit(); 
    }); 
    
    +0

    此代码应该放在哪里?使用提交事件处理程序有什么问题?为什么要解决这个问题? –

    +0

    用.on替换.live的目的是在父选择器中绑定选择器。这就是为什么你在使用.on时不应该以这种方式进行编码的原因 –

    相关问题