2011-10-09 74 views
1

我有一個隱藏元素的表單,用於創建一個由逗號分隔的值的僞數組,這些數值將通過發佈提交給服務器,然後將隱藏元素解碼爲數組處理後進行存儲。爲了填充隱藏的元素,我使用可見元素和javascript處理的按鈕來爲隱藏元素添加值,每次按下按鈕時清除表單。選擇性提交表單元素

這裏是一個問題:我如何獲得可見元素不被提交給服務器,只提交隱藏元素以節省帶寬?有沒有辦法創建一個文本輸入字段,它不會與表單的其餘部分一起提交,但是JavaScript和普通表單控件仍然可以訪問?這裏的目標是防止在點擊提交按鈕時發送相同數據的不必要的重複,AFTER JavaScript已經用我需要的數據填充了僞數組。

編輯:謝謝你的幫助。我得到的前兩個答案很好,但我選擇了一個我認爲對自己和可能正在尋找相同解決方案的其他人更加詳細和有幫助的答案。

計劃:我將有一個onsubmit腳本,在提交之前禁用不需要的字段,以便它們不會發送到服務器,從而節省(少許)帶寬並減少信息量,方腳本需要做。這使得可以輕鬆使用JavaScript來清除我想清除的字段,同時不斷保留隱藏的字段加載我需要的CSV。

回答

2

有,我能想到現在有兩種provabilities:外form標籤

  1. 將可見輸入元素,只留下提交按鈕,裏面隱藏字段。
  2. 在窗體元素上創建事件onsubmit以在可見字段上設置disabled屬性。在某些瀏覽器上可能需要額外刪除該事件,請返回false並手動觸發表單提交。
+0

這個答案在步驟2中描述了一種更具體的做事方式,同時告訴我可能遇到的潛在隱患,從而在實施我的其他表單之前,將我的鼻子指向正確的方向,進一步研究我的問題。謝謝您的幫助。此外,這裏提出的兩個想法同樣可行,但我更喜歡2比1,因爲2給我一個更多的控制,而1會迫使我手動清除每個可見元素。 – Adam

2

您可以將元素的「禁用」屬性設置爲true以防止它們被提交。

+0

我認爲這可行。保持它們啓用,直到按下提交按鈕,並且在提交數據之前,只需將所有可見字段設置爲「禁用」即可。可能需要我花些時間來驗證這是我想要做的。 – Adam

+0

嗯,它絕對的作用,他們不會被張貼爲表格的一部分。如果您在發佈之前禁用它們,但之後立即重新啓用它們,則應該不會有任何可見的效果。 – Pointy