幾個有用的jquery表單函式
阿新 • • 發佈:2018-11-08
//將JSON字串的值回填回表單 function loadData(obj) { /* var obj = eval("("+jsonStr+")"); */ var key, value, tagName, type, arr; for (x in obj) { key = x; value = obj[x]; $("[name='" + key + "']").each(function () { tagName = $(this)[0].tagName; type = $(this).attr('type'); if (tagName == 'INPUT') { if (type == 'radio') { $(this).attr('checked', $(this).val() == value); } else if (type == 'checkbox') { arr = value.split(','); for (var i = 0; i < arr.length; i++) { if ($(this).val() == arr[i]) { $(this).attr('checked', true); break; } } } else { $(this).val(value); } } else if (tagName == 'SELECT' || tagName == 'TEXTAREA') { $(this).val(value); } }); } }
//獲取表單中所有的資料 //注意:此方法返回的是 JSON 物件而非 JSON 字串。 function getFormJson(id) { var test = $("#" + id).serializeArray(); //serializeArray() 方法通過序列化表單值來建立物件陣列(名稱和值)。 var dataStr = "{"; for (var i = 0; i < test.length; i++) { var nameT = test[i].name; var valueT = test[i].value; dataStr = dataStr + "\"" + nameT + "\":\"" + valueT.trim() + "\","; //trim()方法用來去除空格 } /*獲取複選框的值,一般複選框只有一個時,我們在選中和未選中時都要傳一個值。選中時,上面的方法會獲取到,但是未選中時,這裡可以定義你要傳的值,我這裡傳的值為字串 '0' ,當然你也可以定義其他的值*/ $("#" + id + " input[type='checkbox']").each(function () { if (!$(this).is(':checked')) { //這裡判斷複選框如果未被選中的話執行下一步 dataStr = dataStr + "\"" + $(this).attr('name') + "\":\"0\","; } }); dataStr = dataStr.substring(0, dataStr.length - 1); //去掉最後一個屬性的逗號 dataStr = dataStr + "}"; //var dataJson = JSON.parse(dataStr); //parse()方法把dataStr物件轉成json資料 //return dataJson; return dataStr; }
//獲取位址列中引數的值
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //構造一個含有目標引數的正則表示式物件
var r = window.location.search.substr(1).match(reg); //匹配目標引數
if (r != null) return unescape(r[2]); return null; //返回引數值
}