Jquery plugins 带boxy插件的jquery-通过ajax加载和提交表单
我正在使用带有Boxy插件的JQuery 当用户单击某个页面上的链接时,我调用Boxy.load将表单加载到弹出窗口中。表单将加载并显示在弹出窗口中,不会出现问题 但是,我无法将表单绑定到提交事件,因为我无法选择表单元素 这是事件处理程序:Jquery plugins 带boxy插件的jquery-通过ajax加载和提交表单,jquery-plugins,jquery,Jquery Plugins,Jquery,我正在使用带有Boxy插件的JQuery 当用户单击某个页面上的链接时,我调用Boxy.load将表单加载到弹出窗口中。表单将加载并显示在弹出窗口中,不会出现问题 但是,我无法将表单绑定到提交事件,因为我无法选择表单元素 这是事件处理程序: $('#flag-link a.unflagged').click (function(e) { url = $(e.target).attr('href'); Boxy.load(url, {behaviours:
$('#flag-link a.unflagged').click (function(e) {
url = $(e.target).attr('href');
Boxy.load(url, {behaviours: function(r) {
alert ($("#flag-form").attr('id'));
}
});
});
显示警报时,该警报将显示为未定义
以下是表格:
<form id="flag-form" method="POST" action="somepage">
<table>
<tr><td><input type="text" name = "name"></td></tr>
<tr><td><input type="submit" value="OK"></td></tr>
</table>
</form>
我做错了什么 首先是一个小问题,但可能是一个问题源,它应该是id=flag form而不是id=flag form no spaces 第二,你不应该需要r.find。就我所知,在这种情况下,必须使用live方法将元素绑定到事件:
$("#flag-form").live("submit", function(){ ... }
目前,live方法被证明不支持submit事件。不过,我可以用Chrome和FF解决这个问题。另一方面,我无法让它在IE中工作。一种更好的跨浏览器兼容性方法似乎是将表单的submit按钮绑定到click事件
$("#flag-form-submit").live("click", function(){
我了解到,在行为:函数e{}中声明方法除了使用活动方法外还有效 例如:
Boxy打开URL=$e.target.attr'href';在一个iframe中。因此,您无法从起始页父页中找到表单。绑定表单的代码应该在子页面(即长方体iframe)中。您可以使用您的代码检查iframe URL,URL=$e.target.attr'href' +1-因为你赢了我。我不得不放弃同样的两点。谢谢。r、 “查找”只是我尝试选择表单的众多方法之一。不幸的是,问题依然存在。
$('#flag-link a.unflagged').click (function() {
Boxy.load(this.href, {
behaviours: function(r) {
r.find('#flag-form').bind('submit', function() {
// do on submit e.g. ajax calls etc.
});
}
});
return false;
});