Как отправить форму с динамически созданным JavaScript?

Я пытаюсь отправить форму с помощью JavaScript без кнопки отправки и с помощью текстовой ссылки. Однако эта форма динамически создается в PHP следующим образом:

   <form action="profile.php" method="POST" id="searchResultProfileView1" enctype="multipart/form-data">

   <div class="searchResultsFriendInfo">

     <p><img  class="searchResultsFriendImage" src="<?php print $row['ppPath'] ?>" alt="" ></p>

     <p class="searchResultsFriendName"><a class="tabLinks" href="" id="linkToProfile1"><?=ucwords($row["firstname"])?> <?=ucwords($row["lastname"])?></a></p>

     <input type="hidden" name="user_Id" value="<?php print $row["id"] ?>">             

     <p><input type="button" class="searchResultsConnect" value="Connect"></p>

     </div>

    </form>

и мой код JavaScript выглядит следующим образом

 document.observe("dom:loaded", function()
 {
  $("linkToProfile1").onclick=submitForm;

 });

 function submitForm()
 {
   $("searchResultProfileView1").submit(); 
 }

Но когда я пытаюсь сделать это, JavaScript выдает ошибку:

searchResultProfileOpen.js:3Uncaught TypeError: Cannot set property 'onclick' of null

Опять же, эта форма была создана динамически, поэтому я предполагаю, что события JavaScript не могут правильно прослушивать объект dom, который динамически создается с помощью PHP.


person jasper bloom    schedule 10.09.2011    source источник


Ответы (3)


Если вы динамически создаете форму, почему бы не попробовать указать onClick в коде для href.

<a onClick="submitForm();" class="tabLinks" href="" id="linkToProfile1"><?=ucwords($row["firstname"])?> <?=ucwords($row["lastname"])?></a>

Таким образом, вы можете удалить файл document.observe().

person rwilliams    schedule 10.09.2011

Вы не создаете форму динамически. по крайней мере, не согласно javascript. почему бы вам не попробовать просмотреть исходный код на своей веб-странице и выяснить, почему форма пуста. вероятно, ошибка php при написании html

person rugg    schedule 10.09.2011

Должно быть $("#linkToProfile1").onclick=submitForm; и $("#searchResultProfileView1").submit();, не так ли?

person Leonid    schedule 10.09.2011