1

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に添付する方法です。

4

1 に答える 1

3

loadコンテンツが読み込まれると起動するコールバックがあるため、次のようになります。

$('#article').load(href, function() {
    // Hook up the new elements here
});

私が必要としているのは、loginForm送信がクリックされたときに#articleに添付する方法です。

したがって、loadコールバックではフォームにフックsubmitし、イベントハンドラーでは、やりたいことを何でもします#article。たとえば、次のようになります。

$('#article').load(href, function() {
    $("#loginForm").on("submit", function() {
        // Code here to do further things with #article
    });
});

(もちろん、フォームにtarget新しいウィンドウを開くがない場合、または標準のフォーム送信をキャンセルして別の方法でデータを送信しない限り、ページはフォーム送信によって完全に破棄され、サーバーからの結果のページに置き換えられます。そのため、行った変更は#article長くは続かないでしょう。しかし、それを防いでいるのではないか、または行っている変更は、フォームの送信によってページが破棄されるまでのことを意図していると思います。)


補足:それはおそらく質問のタイプミスでしたが、あなたは$("loginForm")ではなく持っていました$("#loginForm")

于 2012-12-31T05:26:46.943 に答える