อาจมีประโยชน์สำหรับบางคน:
(ฟังก์ชันที่อนุญาตให้คุณเพิ่มข้อมูลลงในฟอร์มโดยใช้อ็อบเจกต์โดยมีการแทนที่สำหรับอินพุตที่มีอยู่ถ้ามี) [pure js]
(แบบฟอร์มคือ dom el ไม่ใช่วัตถุ jquery [ jqryobj.get (0) ถ้าคุณต้องการ ])
function addDataToForm(form, data) {
if(typeof form === 'string') {
if(form[0] === '#') form = form.slice(1);
form = document.getElementById(form);
}
var keys = Object.keys(data);
var name;
var value;
var input;
for (var i = 0; i < keys.length; i++) {
name = keys[i];
// removing the inputs with the name if already exists [overide]
// console.log(form);
Array.prototype.forEach.call(form.elements, function (inpt) {
if(inpt.name === name) {
inpt.parentNode.removeChild(inpt);
}
});
value = data[name];
input = document.createElement('input');
input.setAttribute('name', name);
input.setAttribute('value', value);
input.setAttribute('type', 'hidden');
form.appendChild(input);
}
return form;
}
ใช้:
addDataToForm(form, {
'uri': window.location.href,
'kpi_val': 150,
//...
});
คุณก็ใช้แบบนั้นได้เช่นกัน
var form = addDataToForm('myFormId', {
'uri': window.location.href,
'kpi_val': 150,
//...
});
คุณสามารถเพิ่ม # ได้หากต้องการ ("#myformid")