提交表格的jquery

时间:2012-10-15 06:57:08

标签: jquery submit

感谢大家的回复。 找到解决方案:我使用了DIV而不是FORM并将其中的每个INPUT序列化。

当前的FIDDLE代码: 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>

(我已经尝试从表单中删除表格)

当前的FIDDLE代码: http://jsfiddle.net/MyBZC/

4 个答案:

答案 0 :(得分:2)

试试这个:工作演示 http://jsfiddle.net/tFSdq/ http://jsfiddle.net/bnTLR/

您需要序列化容器内的输入。不是容器本身

希望这符合需要:)

P.S。不要忘记点击click me man按钮,使用serialize.serializeArray在第二个演示中获取提醒。

<强>码

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

进一步查看下面的3张图片,其中显示了这两个警报在输入的值上显示的内容。  enter image description here

图片2

enter image description here

图片3

enter image description here

答案 1 :(得分:1)

像这样添加#id

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

serializeArray()serialize()两者都在为我工作,请查看myfiddle

答案 2 :(得分:1)

就像您已经想到的那样,serializeArray()不适用于嵌套表单,因为它是非法 HTML,如jQuery docs中所述:

  

请注意, serializeArray()仅适用于表单元素,使用此方法   另一个元素的方法不起作用。此外,这种方法不会   在嵌套表单上给出任何结果,这在HTML中是非法的。

您可能需要按照jhonraymos的说明使用serialize()或使用Tas_innit的方法。

答案 3 :(得分:0)

看看这个: http://docs.jquery.com/Ajax/serializeArray

这里写的是......“这个方法不会在嵌套表单上给出任何结果,这在HTML中是非法的”