すでに存在するコンテンツにフォームを追加した後、フォーム(コールバックから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番目のコールバックを作成するために使用されます。