2012-10-15 169 views
0

感謝所有人的回覆。 解決方案發現:我使用了DIV而不是FORM,並將其中的每個INPUT序列化。jquery提交表格

CURRENT FIDDLE CODE:http://jsfiddle.net/MyBZC/

形式:

<form id="sfn" name="sfn"> 
     <input name="datasource" type="hidden" value="TDA"> 
     <input name="staticfields" type="hidden" value=""> 
     <input name="returnfield" type="hidden" value="Complaintinformation_ID"> 
     <input name="returnid" type="hidden" value="Complaintinformation_ID"> 
    eCI ID:<input class="nostyle" type="text" name="id" id="Complaintinformation_ID" style="width:150px;"/> 
    Complaint number: <input class="nostyle" type="text" name="ecin" id="ecin" style="width:150px;"/> 
</form> 

jQuery的:

var ds= $("#sfn").serializeArray(); 
alert(ds); 

提醒DS給我一個空的警告框。是否可以serializeArray()不工作,因爲這個HTML表單實際上是在另一個表單標籤?

未經編輯的真實(再)HTML輸出是這樣的:

<form id="searchform_srcSupplier" name="searchform_srcSupplier"> 
     <input name="datasource" type="hidden" value="DEACSQL10_BPCS_DATA"> 
     <input name="from" type="hidden" value="BPCS_AVM"> 
     <input name="where" type="hidden" value="Partner_ID='122'"> 
     <input name="componentname" type="hidden" value="srcSupplier"> 
     <input name="staticstrings" type="hidden" value="Supplier address"> 
     <input name="staticfields" type="hidden" value="LTRIM(RTRIM(VNDAD1))+'<br>'+LTRIM(RTRIM(VNDAD2))+'<br>'+LTRIM(RTRIM(VCITY))+'<br>'+LTRIM(RTRIM(VPOST))+' '+LTRIM(RTRIM(VSTATE))"> 

     <input class="nostyle" name="returnfield" type="hidden" value="VNDNAM"> 
     <input class="nostyle" name="returnid" type="hidden" value="VENDOR_id"> 
     <table ><tr> 

      <td> 
       Supplier ID: 
      </td> 
      <td> 
       <input class="nostyle" type="text" name="VENDOR" id="VENDOR" style="width:150px;"/> 
      </td> 

      <td> 
       Supplier name: 
      </td> 
      <td> 
       <input class="nostyle" type="text" name="VNDNAM" id="VNDNAM" style="width:150px;"/> 
      </td> 

       </tr><tr> 

    </tr> 
    </table> 
    </form> 

(我已經嘗試從形式去除表)

CURRENT FIDDLE CODE:http://jsfiddle.net/MyBZC/

+0

嘗試警報ds的長度,以便您可以知道是否有任何內容被序列化 – Abubakkar

+0

@Abu:長度爲0(零)。另外如果我在控制檯中登錄'ds',它只會給我一個空白的行。甚至沒有[對象] – PoeHaH

+0

你可以嘗試'serialize()'我不知道有什麼區別,但試試看,並讓我知道 – Abubakkar

回答

2

試試這個:工作演示http://jsfiddle.net/tFSdq/http://jsfiddle.net/bnTLR/

您需要連載容器內的輸入。不是容器本身

希望這符合需要:)

附:不要忘記點擊click me man按鈕,在第二個演示中使用serialize.serializeArray來獲得警報。

代碼

var ds= $("#sfn input").serializeArray(); 
alert(ds);​ 

此外見下文 3個圖像示出了什麼上的值這2個警報顯示輸入。 enter image description here

圖片2

enter image description here

圖片3

enter image description here

+1

是的,它也適用於我 –

+0

@PragneshChauhan':)'真棒! –

+0

我試過了;它不工作。這是我目前的代碼: http://jsfiddle.net/MyBZC/ – PoeHaH

1

添加#id像這樣

var ds= $("#sfn").serializeArray(); 
alert(ds); 

serializeArray()serialize()都是對我的工作請myfiddle

+0

對不起,這是一個在我的代碼中輸入錯字##是在那裏,但它不工作 – PoeHaH

1

像你已經想通了,serializeArray()不嵌套形式的工作,因爲它是非法 HTML作爲jQuery docs說:

注意serializeArray()只適用於表單元素,使用另一個元素在此 方法是行不通的。此外,這種方法不會 在嵌套表單上給出任何結果,而這在HTML中是非法的。

您可能需要使用jhonraymos所述的serialize()或使用Tas_innit的方法。

+0

.serialize()也不起作用 – PoeHaH

+0

請查看我的代碼http://jsfiddle.net/MyBZC/ – PoeHaH

+0

喲,Okies +1 innit! ':)' –