0

状況を想像してみましょう。

私はASPWebサイトを持っており、そこでcontetをdivにロードしています

ので、私は持っています

<div id="placeholder"></div>
<button onClick="javascript:test()">Bla</button>

そして私はjQueryによってそれにコンテンツをロードしています:

$("#placeholder").load("@Url.Action("Add","Products")");

そして今、私はこのように機能するjavascriptテスト関数が欲しいです:

1)プレースホルダーdivにロードされたコンテンツにアクセスし、フォーム(このdiv内で「FORM」という名前でProduct Controller Addアクションからロードされたもの)を見つけて、検証イベントを起動します。

私は試しました:$("#Form").valid()しかし、それは機能していません。

私は何をすべきか ?

4

1 に答える 1

0

あなたがしたことで考えられる2つの問題:

  1. フォームの名前 は だと言いましたが、セレクターをFORM使用して検索しようとしました ( )。を付けるか、を使用して検索します。また、両方の場所で同じ大文字を使用していることを確認します(名前はそうでしたが、セレクターで使用しました)。id$("#Form")id$("form[name=Form]")FORM#Form

  2. ロードされた後、それを見つける必要があります。loadそのためのコールバックを提供します (2 番目の引数)。

これらをまとめると、次のようになります。

// Either give it an `id` (here I've assumed `id="theForm"` in the markup):
$("#placeholder").load("@Url.Action("Add","Products")", function() {
    // This is the load callback, called when the load is complete
    $("#theForm").valid();
});

// Or use the selector `form[name=Form]` to find it:
$("#placeholder").load("@Url.Action("Add","Products")", function() {
    // This is the load callback, called when the load is complete
    $("form[name=Form]").valid(); // <== Assuming the name is "Form" not "FORM"
});

javascript:補足:この部分は必要ありません。

<button onClick="javascript:test()">Bla</button>
<!--             ^^^^^^^^^^^---- lose this   -->

効果ゼロです。疑似プロトコルは、要素javascript:の など、URL が必要な場所でのみ使用します。古いスタイルのDOM0 ハンドラーは常に、ページ全体の既定のスクリプトである JavaScript を使用します (古い Microsoft 独自のメタ タグを使用している場合を除きます)。there を使用しても実際にはエラーにならない理由は、それがlabelになってしまうからです。hrefaonXyzjavascript:

于 2012-12-30T16:36:17.133 に答える