2011-10-17 187 views
0

我無法使用JQuery和AJAX提交包含3個隱藏輸入的表單。jquery AJAX表單提交不起作用

這是我的javascript函數:

createTdisLabel=function(formid){ 
     document.forms['TDISLabelForm'].label.value = document.forms['acknowledgeForm'].label.value; 
     var url = '<%=request.getContextPath()%>'+"/createLabelTDIS.do"; 
     var data=$(formid).serialize(true); 
     new Ajax.Request(url,{method:'post', parameters:data,onSuccess:function(data){ 
      $("#createLabel").html(data.label); 
     }}); 
    }; 

    function submitTDISform() 
    { 
     document.TDISLabelForm<%=segmentID%>.submit(); 
    } 

下面是隱藏的形式和主要形式有:

<form name="TDISLabelForm" id="TDISLabelForm<%=segmentID%>" method='POST' onsubmit="createTdisLabel('TDISLabelForm<%=segmentID%>');" action="javascript:void(0);"> 
     <input type="hidden" id="labNum" name="lab_no" value="<%=lab_no%>"> 
     <input type="hidden" id="accNum" name="accessionNum" value="<%=accessionNum%>"> 
     <input type="hidden" id="label" name="label" value="<%=label%>"> 
    </form> 

    <form name="acknowledgeForm" id="acknowledgeForm_<%=segmentID%>" onsubmit="updateStatus('acknowledgeForm_<%=segmentID%>');" method="post" action="javascript:void(0);"> 

     <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0"> 
      <tr> <td> 
      <input type="text" id="label" name="label" value="<%=label%>"/> 
      <input type="button" id="createLabel" value="Create" onClick="submitTDISform();"> 
       </td></tr> </table> </form> 

當我點擊在 「acknowledgeForm」 創建按鈕, 「TDISLabelForm」 不獲得提交。我打開了Firebug,根本沒有看到JavaScript函數的調用。我究竟做錯了什麼?

回答

0

我的猜測是你可能沒有在你的html頁面中包含javascript文件。這就是爲什麼它無法看到該功能。另外,因爲你使用的是jQuery,我認爲它最好也用於事件處理

$("#createLabel").click(your_javascript_function()); 
+0

實際上,擁有所有這些代碼的jsp頁面被包含在另一個jsp頁面中。那麼爲什麼它不能找到這個功能呢?我是否應該再次將JavaScript函數作爲調用具有此代碼的jsp頁面的一部分? – Sapphire

1

您的html中存在拼寫錯誤。您指定了onlick屬性而不是onclick屬性。

+0

LOL !!!這個事件可能在一個非常具體的用例中有意義;) – PhD

+0

感謝您指出這一點,我將它固定到onClick ...現在我得到一個JavaScript錯誤,提示「submitTDISform未定義 submitTDISform();」 – Sapphire