我有一个DOM元素#article,我正在使用这个加载一个登录表单 以下代码:
$('#loginLink')
.click(function () {
var $link = $(this);
var href = $link.attr('data-href');
$('#article').load(href);
}
return false;
});
登录表单如下:
<article id="article">
<section class="form" id="loginForm">
<form action="/User/Account/Login" method="post" novalidate="novalidate">
.....
如何在表单提交中添加一些操作?目前我有这个 代码:
$("loginForm").on("submit", function () {
var $form = $(this);
我知道这不会起作用,因为稍后会添加loginForm。我需要的是一种方式 单击loginForm提交时附加到#article。
答案 0 :(得分:3)
load
有一个回调,一旦内容加载就会触发,所以:
$('#article').load(href, function() {
// Hook up the new elements here
});
我需要的是在单击loginForm提交时附加到#article的方法。
因此,在load
回调中,您将submit
挂钩在表单和事件处理程序中,您可以对#article
执行任何操作,例如:< / p>
$('#article').load(href, function() {
$("#loginForm").on("submit", function() {
// Code here to do further things with #article
});
});
(当然,除非表单有target
打开一个新窗口,或者您取消标准表单提交并以另一种方式发送数据,页面将被表单提交完全拆除并替换来自服务器的结果页面,因此您对#article
所做的更改将不会持续很长时间。但我猜测您正在阻止它,或者您正在进行的更改仅限于页面被表单提交拆除。)
附注:问题可能只是一个错字,但你有$("loginForm")
而不是$("#loginForm")
。