表格不会提交

时间:2010-02-20 13:10:17

标签: javascript jquery html

我的表单提交有问题,这是交易。我正在创建一个图像网站,我想为每个图像创建注释,所以我有一个锚点链接,点击时显示注释表单,即将html加载到不在第一个位置的网页中,所以页面内部加载的表单未提交。

动态加载到网页的表单是否有可能无法提交?这有什么其他问题吗?我甚至尝试在加载的内容中添加<a href="#" id="test">Click me</a>之类的内容,然后添加了

$("#test").click(function(){
alert("SOMETHING");
});

到我的javascript,它也不会发出警报..我做错了什么?

修改

好的,这是我如何加载表格..

我的图片下方有一个锚点链接:

<a href="javascript:;" onclick="showComments('22');" class="answer_comment">Add image content</a>

这是javascript,它是文档就绪函数:

function showComments(post){
         var xHTML = "<div class=\"addComment\">";
         xHTML += "<form action=\"<?=base_url()?>images/post_comment/" + post + "\" method=\"post\" id=\"comment_form\" name=\"comment_form\">";
         xHTML += "<input type=\"hidden\" id=\"comment_post_id\" name=\"comment_post_id\" value=\"" +post + "\"/>"; 
         xHTML += "<textarea name=\"comment_text\" class=\"comment\" rows=\"8\" cols=\"40\"></textarea>";
     .....

像这样我填写我的评论表格..需要更多代码吗?

5 个答案:

答案 0 :(得分:6)

动态加载的元素也必须在您的情况下进行操作,以提醒您:

$("#test").live('click', function() {
  alert("SOMETHING");
});

这将激活id="test"的任何元素,无论是否加载了ajax。对于您要使用的任何处理程序,应使用相同的样式。阅读.live() documentation以获取完整的故事...基本上它位于根DOM级别,用于监听点击并对其进行操作,因此在您定义事件处理程序时它不关心是什么或不存在,这就是你想要的动态加载内容。

答案 1 :(得分:0)

在函数()之后不需要{吗?

}' before the);`在第三行?

$("#test").click(function() {
alert("SOMETHING"); 
}); 

答案 2 :(得分:0)

使用AJAX获取表单通常不是问题。

考虑到表单无法提交的唯一原因是:

  • 这是无效的HTML - 应该可以找到使用firebug

  • 提交时,您通过其ID(如$('#comment_form').submit();)来解决该问题,因为已经有一些带有该ID的元素,因此ID失败了。要确定是否是这种情况,请尝试在表单中注入正常的<input type=submit>,看看是否有效。

  • 您正在将其注入另一个<form>元素 - 很容易找到Firebug

答案 3 :(得分:0)

您最后在代码中添加了额外的{

$("#test").click(function()
alert("SOMETHING");
{);

更正一下,如果它仍然不起作用,请尝试使用live方法,该方法适用于现在以及将来的元素。

$("#test").live('click', function(){
  alert("something");
});

另外,请确保如果有多个表单,则不会重叠。

答案 4 :(得分:0)

动态添加的表单应该与原始html中的表单相同。确保在添加元素或使用live方法后添加事件处理程序。