0

这是生成表单的 PHP 代码:form.php

 <?php
    echo '
    <form action="/wall/comment.php" method="post" id="submit-comment-form" name="'.$postid.'"> 
    <div class="write-comment-profile-pic">
    <img src= "'.$myprofilepic.'" width="30" height="30""/>
    </div>
    <div class="write-comment-textbox-wrap">
    <input type="text" class="textbox4" id="write-comment-textbox" value="Write a comment..." name="comment" style="width:65%;" />
    </div>
   </form>
   ';
   ?>

获取 form.php 的 Jquery 代码

$('#images img').click(function() { 
$.get('form.php', function(data) {
$('#image-pop-up').html(data);
});
});

并且这里是需要提交表单的 jquery 代码:

$('#image-pop-up').on('submit', '#submit-comment-form', function() { 
evt.preventDefault();       
});

在 index.html image-pop-up div 中只是一个空的

<div id="image-pop-up">

</div>

这不起作用......怎么了?如何解决?

4

1 回答 1

10

我怀疑问题与选择器有关,目标元素要么没有找到,要么是正确的目标元素。

一些可能出错的事情:

  1. 双重 ID 引用是不必要的:这只是另一个可能出错的地方。
  2. 如果#image-pop-up执行此代码时尚未生成,则永远不会绑定该事件。
  3. submit事件仅在表单上触发,因此您需要确保这是您的目标。
  4. 您调用preventDefault()of evt,但未evt绑定到 events 参数。

假设这#submit-comment-form是您正在处理的表单,无论执行时是否有任何元素可用,以下代码都应该工作:

$(document).on('submit', '#submit-comment-form', function(evt){
    evt.preventDefault();
})
于 2013-02-12T12:43:52.507 回答