0

フォームを生成する 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を呼び出しますがevtevtevents 引数にバインドしていません。

#submit-comment-formそれがあなたが扱っているフォームであると仮定すると、次のコードは、実行時に要素が使用可能かどうかに関係なく機能するはずです。

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