繁体   English   中英

表格不会提交

[英]form won't submit

我的表单提交有问题,这是交易。 我正在创建一个图片网站,我想为每张图片创建评论,所以我有一个锚点链接,当单击该链接时会显示评论表单,即将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>";
     .....

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

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

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

这将触发任何id="test"元素,无论是否已加载ajax。 您想要使用的任何处理程序都应使用相同的样式。 阅读.live()文档以获取全文...基本上,它位于根DOM级别上,以侦听单击并对其进行操作,因此在定义事件处理程序时,它并不关心存在或不存在的内容,这就是您要动态加载的内容。

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

第三行中的}' before the ;` }' before the吗?

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

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

想到为什么表单无法提交的唯一原因:

  • 这是无效的HTML-应该可以使用Firebug找出来

  • 提交时,您正在通过其ID(例如$('#comment_form').submit(); )来解决该问题,该操作失败是因为该ID已经存在一些元素。 要确定是否是这种情况,请尝试在表单内部注入普通的<input type=submit> ,然后查看是否可行。

  • 您将其注入到另一个<form>元素中-易于使用Firebug找出

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

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

请更正该问题,如果仍然无效,请尝试使用适用于当前和将来元素的live方法进行此操作。

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

另外,请确保如果有多种形式,它们不会重叠。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM