jq form表單自動賦值
阿新 • • 發佈:2017-11-28
+= each radi 鏈接 是否 如果 != image def
(function ($) {
$.fn.extend({
initForm: function (options) {
//默認參數
var defaults = {
formdata: "",
isDebug: true //是否需要調試,這個用於開發階段,發布階段請將設置為false,默認為false,true將會把name value打印出來
}
//如果傳入的json字符串,將轉為json對象
var tempData = "";
if ($.type(options) === "string") {
defaults.formdata = JSON.parse(options);
} else {
defaults.formdata = options;
}
//設置參數
// var setting = $.extend({}, defaults, tempData);
var setting = defaults;
var form = this;
formdata = setting.formdata;
//如果傳入的json對象為空,則不做任何操作
if (!$.isEmptyObject(formdata)) {
var debugInfo = "";
$.each(formdata, function (key, value) {
//是否開啟調試,開啟將會把name value打印出來
if (setting.isDebug) {
debugInfo += "name:" + key + "; value:" + value + "\r\n ";
}
//表單處理
var formField = form.find("[name=‘" + key + "‘]");
if ($.type(formField[0]) === "undefined") {
if (setting.isDebug) {
console.warn("can not find name:[" + key + "] in form!!!"); //沒找到指定name的表單
}
} else {
var fieldTagName = formField[0].tagName.toLowerCase();
if (fieldTagName == "input") {
if (formField.attr("type") == "radio") {
$("input:radio[name=‘" + key + "‘][value=‘" + value + "‘]").attr("checked", "checked");
} else if (formField.attr("type") == "checkbox") {
$("input:checkbox[name=‘" + key + "‘][value=‘" + value + "‘]").attr("checked", "checked");
} else {
formField.val(value);
}
} else if (fieldTagName == "label") {
formField.html(value);
} else {
formField.val(value);
}
}
//圖片鏈接處理form.find("img[fieldata=img_url]")
var formImage = form.find("img[fieldata=" + key + "]");
if ($.type(formImage[0]) != "undefined") {
formImage.attr("src", value);
}
//a鏈接處理
var formLink = form.find("a[fieldata=" + key + "]");
if ($.type(formLink[0]) != "undefined") {
formLink.attr("href", value);
}
})
if (setting.isDebug) {
console.log(debugInfo);
}
}
return form; //返回對象,提供鏈式操作
}
});
})(jQuery)
jq form表單自動賦值