如何使用动态创建的JavaScript提交表单?

时间:2011-09-10 17:31:26

标签: javascript forms hyperlink form-submit

我正在尝试使用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事件无法正确监听使用PHP动态创建的dom对象。

3 个答案:

答案 0 :(得分:1)

如果您是动态创建表单,为什么不尝试在href的代码中指定onClick

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

这样您就可以删除document.observe()

答案 1 :(得分:0)

您没有动态创建表单。至少不是根据javascript。为什么不尝试在网页上查看源代码并找出表单为空的原因。可能是编写html的php错误

答案 2 :(得分:0)

它应该是$("#linkToProfile1").onclick=submitForm;$("#searchResultProfileView1").submit();,不是吗?