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 元素是this提供的弹出窗口。

"#" + placeid + "newcomment" 是 "#" + placeid + "comments" 中的一个 div。前两个调用看似正确执行,并根据需要在弹出窗口中呈现回调提供的表单。

所有这些的目的是向此弹出窗口添加一个表单,然后使用该表单进行第二次回调。

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 回答