原生js實現(xiàn)獲取form表單數(shù)據(jù)代碼實例
本文實例為大家分享了原生js實現(xiàn)獲取form表單數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下
//獲取指定form中的所有的<input>對象
function getElements(formId) {
var form = document.getElementById(formId);
var elements = new Array();
var tagElements = form.getElementsByTagName('input');
for (var j = 0; j < tagElements.length; j++){
elements.push(tagElements[j]);
}
var tagElements = form.getElementsByTagName('select');
for (var j = 0; j < tagElements.length; j++){
elements.push(tagElements[j]);
}
var tagElements = form.getElementsByTagName('textarea');
for (var j = 0; j < tagElements.length; j++){
elements.push(tagElements[j]);
}
return elements;
}
//組合URL
function serializeElement(element) {
var method = element.tagName.toLowerCase();
var parameter;
if(method == 'select'){
parameter = [element.name, element.value];
}
switch (element.type.toLowerCase()) {
case 'submit':
case 'hidden':
case 'password':
case 'text':
case 'date':
case 'textarea':
parameter = [element.name, element.value];
break;
case 'checkbox':
case 'radio':
if (element.checked){
parameter = [element.name, element.value];
}
break;
}
if (parameter) {
var key = encodeURIComponent(parameter[0]);
if (key.length == 0)
return;
if (parameter[1].constructor != Array)
parameter[1] = [parameter[1]];
var values = parameter[1];
var results = [];
for (var i = 0; i < values.length; i++) {
results.push(key + '=' + encodeURIComponent(values[i]));
}
return results.join('&');
}
}
//調(diào)用方法
function serializeForm(formId) {
var elements = getElements(formId);
var queryComponents = new Array();
for (var i = 0; i < elements.length; i++) {
var queryComponent = serializeElement(elements[i]);
if (queryComponent) {
queryComponents.push(queryComponent);
}
}
return queryComponents.join('&');
}
最后通過serializeForm(formId);輸入form的id名稱即可實現(xiàn),返回數(shù)據(jù)為
id=1&title=%E6%B4%BB%E5%8A%A8&time=2017-07-10&status=1&importance=0&desc=%E5%9C%A8%E4%BA%8C%E6%A5%BC%E5%8A%9E%E5%85%AC%E5%AE%A4%E5%BC%80%E4%BC%9A%EF%BC%8C%E4%B8%80%E7%82%B9%E9%92%9F
以上所述是小編給大家介紹的原生js實現(xiàn)獲取form表單數(shù)據(jù)詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript italics方法入門實例(把字符串顯示為斜體)
這篇文章主要介紹了JavaScript italics方法入門實例,italics方法用于把字符串顯示為斜體,需要的朋友可以參考下2014-10-10
jquery下組織javascript代碼(js函數(shù)化)
這里整理的是jquery下js的一些代碼組織方法,大家可以借鑒下整理出基于jquery的自己喜歡的模式。2010-08-08
基于KMP算法JavaScript的實現(xiàn)方法分析
本篇文章介紹了,基于KMP算法JavaScript的實現(xiàn)方法分析。需要的朋友參考下2013-05-05
Javascript 動態(tài)改變imput type屬性
這篇文章主要介紹了Javascript 動態(tài)改變imput type屬性的相關(guān)資料,并附簡單實例代碼,需要的朋友可以參考下2016-11-11
javascript 命名規(guī)則 變量命名規(guī)則
匈牙利命名法是一位微軟程序員發(fā)明的,多數(shù)的C,C++程序都使用此命名法。2010-02-02

