簡體   English   中英

jQuery多種表單提交

[英]jQuery Multiple Forms Submit

我在頁面上有4種表格。 我知道表格不能嵌套。

<form id="form1"></form>

<form id="form2"></form>

<form id="form3"></form>

<form id="form4"></form>

按該順序顯示。

表格1和表格4發布到同一php頁面進行處理。 表單1有1個輸入字段表單4有多個字段,復選框和選擇框。

對於表格1或表格4發送兩個表格的組合字段的最佳方法是什么?

我嘗試使用jQuery,非常適合文本輸入和復選框,但無法使其與Select一起使用。 嘗試將表單1和表單4合並,並使用CSS重新定位表單1,但是無法獲得正確的布局。

有更簡單的方法嗎?

這是不可能的。 您可以使用serialize()serializeArray()方法獲取表單的數據,然后使用Ajax將其發布到服務器:

將一組表單元素編碼為要提交的字符串。

$('#send').click(function() {
   var firstFormData  = $('form:eq(0)').serializeArray();
   var fourthFormData = $('form:eq(3)').serializeArray();
   $.ajax({
        url  : '...',
        type : 'post',
        data : firstFormData.concat(fourthFormData)
   }).done(function() {
       // ...
   });
});

好的,我無法讓.serialize()與來自form4的復選框數組一起使用,例如

<input type="checkbox" id="model[]">

我試圖獲取已檢查的值,但無法使其與其他輸入一起序列化:

var vals = []
    $('input:checkbox[name="model[]"]').each(function() {
        if (this.checked) {
            vals.push(this.value);
        }
    });

所以我回過頭去做了更簡單的事情:

刪除form1,將文本輸入和提交按鈕<div id="searchbox" style="position:abosulte;top:-100px;left:0px;">My original form1</div>內的<div id="searchbox" style="position:abosulte;top:-100px;left:0px;">My original form1</div>

將一個占位符<div id="placeholder" style="position:relative;"></div>放在form2和3的上方(form1以前是)。

將JavaScript放在上方:

$(document).ready(function(){
    $("#searchbox")
    .appendTo("#placeholder");
});

移動文本輸入並提交按鈕以將其絕對且相對於占位符div定位。

這樣,我將它們簡化為1種形式(無論如何,這就是它的意圖),不依賴javascript處理任何數據,也不需要我對這兩種形式進行串聯序列化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM