2

すでに存在するコンテンツにフォームを追加した後、フォーム(コールバックからHTMLフォームで提供される)を取得しようとしています。追加しても問題はなく、フォームは正しく表示されます。これは、id =(placeid + "commentinput")を使用したコールバックによって(HTMLとして)提供され、ページに追加されます。ただし、$(placeid + "commentinput")を実行しようとすると、適切なjQuery要素が返されません(たとえば、alert(form.tagName)は "FORM"を返すことになっていますが、代わりに常に未定義です)。

function click_comment1(urlstr, id) { $.ajax({url: urlstr,success: success_on_get_form(urlstr, id)}); }
function success_on_get_form(urlstr, placeid) {
return function (val) {
    $("#" + placeid + "newcomment").html(val.replace("comments_body","body"));
    $("#pup").html($("#" + placeid + "comments").html());
    var form = jQuery("#" + placeid + "commentinput");
    var func = submit_comment(urlstr, placeid);
    alert(form.id);
    form.bind('submit',func);
} }

私はこの時点で知っている他のすべての形式の選択を試しました(基本的に、.children()。私はjQueryを初めて使用します)。私はこの問題をさまざまな形で4時間無力にハッキングしてきました。助けていただければ幸いです、ありがとうございます。

<form action="" enctype="multipart/form-data" id="1commentinput" method="post">...</form>

これはコールバックからの戻りです。中央部分はスペースのために省略されています。

表示される#pup要素は、これで提供されるポップアップです。

"#" + placeid + "newcomment"は、 "#" + placeid+"comments"内のdivです。これらの最初の2つの呼び出しは、一見適切に実行され、必要に応じてポップアップでコールバック提供フォームをレンダリングします。

これらすべての目的は、このポップアップにフォームを追加することです。このフォームは、2番目のコールバックを作成するために使用されます。

4

1 に答える 1

0

問題は、要素IDを開始するために無効な文字を使用しているという事実に要約される可能性があります。

有効な文字で始まるように変更すると、機能するはずです。

http://www.w3.org/TR/html4/types.html#type-id

IDトークンとNAMEトークンは、文字([A-Za-z])で始まる必要があり、その後に任意の数の文字、数字([0-9])、ハイフン( "-")、アンダースコア( "_")を続けることができます。 、コロン( ":")、およびピリオド( "。")。

于 2012-11-14T05:26:56.170 に答える