我有一個網頁,表單輸入元素位於不同的地方,不能被物理地包含在同一個表單中。在表單提交中包含這些輸入值的最佳方法是什麼?表單提交的輸入元素不包含在表格中
請注意,我想執行一個實際的提交後,而不是一個AJAX提交。
我有一個網頁,表單輸入元素位於不同的地方,不能被物理地包含在同一個表單中。在表單提交中包含這些輸入值的最佳方法是什麼?表單提交的輸入元素不包含在表格中
請注意,我想執行一個實際的提交後,而不是一個AJAX提交。
向表單中添加onsubmit處理函數,並在處理程序中將各種輸入中的值複製到表單中的隱藏輸入中。
但是,請注意,這將顯然不適用於JavaScript關閉的用戶。
<form id="mainForm" action="yoururl">
<!-- visible form fields here, then hidden
fields to hold values from non-form fields -->
<input type="hidden" id="field1" name="field1">
<input type="hidden" id="field2" name="field2">
<input type="hidden" id="field3" name="field3">
<input type="hidden" id="field4" name="field4">
</form>
<!-- other fields to be submitted with mainForm -->
<input type="text" id="displayfield1">
<input type="text" id="displayfield2">
<input type="text" id="displayfield3">
<input type="text" id="displayfield4">
<script>
document.getElementById("mainForm").onsubmit = function(e) {
e = e || window.event;
var theForm = e.target || e.srcElement;
// could copy fields across manually, one by one:
document.getElementById("field1").value =
document.getElementById("displayField1").value;
// or you could copy based on matching field ids:
var fields = theForm.getElementsByTagName("input"),
i,
df;
for (i=0; i < fields.length; i++) {
if (fields[i].type === "hidden") {
df = document.getElementById("display" + fields[i].id);
if (df != null)
fields[i].value = df.value;
}
}
// could return false here if there was some failed
// validation and you wanted to stop the form submitting
return true;
};
</script>
對不起有些醜陋的代碼 - 只是掀起了我的頭頂上的東西。如果你有興趣,你可以做大約三行jQuery的所有上述...
嗯...那麼只需將輸入附加到表單onsubmit,不知道是否會起作用。 –
@nnnn - 我也在想 - 只是需要第二個意見 - 謝謝 – Yarin
@Vibhu可能是一個答案。 – kapa