Javascript 表格won';不要屈服

Javascript 表格won';不要屈服,javascript,jquery,html,Javascript,Jquery,Html,我的表格提交有问题,这里是交易。我正在创建一个图像网站,我想为每个图像创建评论,因此我有一个锚链接,当单击该链接时会显示评论表单,即将html加载到最初不在页面内的网页中,因此页面内加载的表单不会提交 动态加载到网页中的表单是否可能无法提交?这会有什么其他问题?我甚至试着在加载的内容中放入类似的内容,然后添加了 $("#test").click(function(){ alert("SOMETHING"); }); 到我的javascript,它也不会发出警报。。我做错了什么 编辑 好的,这是

我的表格提交有问题,这里是交易。我正在创建一个图像网站,我想为每个图像创建评论,因此我有一个锚链接,当单击该链接时会显示评论表单,即将html加载到最初不在页面内的网页中,因此页面内加载的表单不会提交

动态加载到网页中的表单是否可能无法提交?这会有什么其他问题?我甚至试着在加载的内容中放入类似
的内容,然后添加了

$("#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>";
     .....
函数showComments(post){
var xHTML=“”;

xHTML+=“函数()后面不需要一个
{

在第三行的
)前面加一个“
”;“

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

函数()后面不需要一个
{

在第三行的
)前面加一个“
”;“

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

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

我想到的表单无法提交的唯一原因是:

  • 它不是有效的HTML-应该可以使用firebug找到它

  • 提交时,您通过其ID(如
    $(“#comment_form”).submit();
    )对其进行寻址,但由于已存在具有该ID的某些元素,因此提交失败。若要确定是否存在这种情况,请尝试在表单中注入一个正常的
    ,然后查看是否有效

  • 您正在将其注入到另一个
    元素中-使用Firebug很容易找到


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

      我想到的表单无法提交的唯一原因是:

      • 它不是有效的HTML-应该可以使用firebug找到它

      • 提交时,您通过其ID(如
        $(“#comment_form”).submit();
        )对其进行寻址,但由于已存在具有该ID的某些元素,因此提交失败。若要确定是否存在这种情况,请尝试在表单中注入一个正常的
        ,然后查看是否有效

      • 您正在将其注入到另一个
        元素中-使用Firebug很容易找到


      您在代码末尾添加了一个额外的
      {

      $("#test").click(function()
      alert("SOMETHING");
      {);
      
      纠正这一点,如果仍然不起作用,请尝试使用
      live
      方法,该方法适用于当前和将来的元素

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

      另外,如果有多个表单,请确保它们没有重叠。

      您在代码末尾添加了一个额外的
      {

      $("#test").click(function()
      alert("SOMETHING");
      {);
      
      纠正这一点,如果仍然不起作用,请尝试使用
      live
      方法,该方法适用于当前和将来的元素

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

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

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

      动态添加的表单的行为应与要添加的表单相同可以在原始html中找到。请确保在添加元素后添加事件处理程序,或者使用该方法。

      动态加载的元素也必须装配好,以便发出警报,您需要:

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

      这将为具有
      id=“test”的任何元素触发"
      ,无论是否加载了ajax。对于您想要使用的任何处理程序,都应该使用相同的样式。阅读完整的故事…基本上,它位于根DOM级别,监听单击并对其进行操作,因此它不关心在定义事件处理程序时有什么或没有,这是动态加载所需的d内容。

      动态加载的元素也必须进行装配。在您的情况下,要发出警报,您需要:

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

      这将为具有
      id=“test”的任何元素触发
      ,无论是否加载了ajax。对于您想要使用的任何处理程序,都应该使用相同的样式。阅读完整的故事…基本上,它位于根DOM级别,监听单击并对其进行操作,因此它不关心在定义事件处理程序时有什么或没有,这是动态加载所需的d内容。

      你正在抓取的HTML是什么样子?@Pekka我更新了我的问题。@Pekka我更新了我的问题。@Pekka我更新了我的问题。。你是对的,单击功能不工作,但你的live it正在工作,这是为什么?因为当你设置
      单击
      事件时,它只适用于dOM元素在设置时已经存在,但不是将来的元素。+1-我从来都不知道
      live
      有什么好处,现在我知道了。@Nick Craver我到现在都没有得到live元素,很好的答案,完全确定了+1+accept我想知道jQuery是否应该被设计成在分配时将“live”功能作为默认行为ng处理程序(带有禁用选项),因为它似乎是许多人的一个症结所在。@patrick-这方面的全局设置可能是有意义的,但对于在单个元素上加载非ajax页面处理程序来说,将所有handles放在顶部会更昂贵。我同意,在许多情况下,一个像
      $.defaultLive=true;
      这样的设置程序会非常好。你是对的click函数不起作用,但你的live函数起作用了,这是为什么?因为当你设置
      click
      事件时,它只适用于设置时已经存在的DOM元素,而不适用于将来的元素。+1-我从来都不明白
      live
      有什么好处,现在我知道了。@Nick Craver me直到现在都没有得到live元素,回答得很好,完全正确+1+接受我想知道jQuery是否应该被设计为