动态设置form表单的元素值
因为经常用到的功能,所以我想到封装一个函数,用起来更方便快捷。。
先来看效果图如下:
var data = {a:'aaaa', b:'2', 'c':[1,2,4]}
这就相当于 ajax 返回的json, 元素是通过 name 来查找的, 其基本形式: name : value
checkbox 比较特殊,它是多个并存,所以要 "选中" 它得通过值来查找, 值对上了,就把它"选中"
当然, 还有清除数据的情况:
var data = {a:'', b:'', 'c':''}
像这样,设置为空值,就可以了。
说到这里,是不是很好玩呀?
ok,下面就是基于 jqery 写的代码:
<form id="form1" >
<input type="text" name="a" /> <br/> <input type="radio" name="b" value="1" checked />1 <input type="radio" name="b" value="2" />2 <input type="radio" name="b" value="3" />3 <br/> <input type="checkbox" name="c[]" value="1" />a <input type="checkbox" name="c[]" value="2" />b <input type="checkbox" name="c[]" value="3"/>c <input type="checkbox" name="c[]" value="4"/>d
</form> <script type="text/javascrip"> //编辑表单 $.fn.formEdit = function(data){ //data = {"text":"value", "checkbox":[1,2,4], "radio":"10"};
if(typeof data == "undefined"){ this.reset(); return this; } return this.each(function(){var input, name; for(var i = 0; i < this.length; i++){ input = this.elements[i];
//修正checkbox
if(input.type == "checkbox"){
name = input.name.replace(/(.+)\[\]$/, "$1");
}else{
name = input.name;
}
if(typeof data[name] == "undefined") continue; switch(input.type){ case "checkbox": if(data[name] == ""){
input.checked = false;
}else{
//数组查找元素
if(data[name].indexOf(input.value) > -1){
input.checked = true;
}else{
input.checked = false;
}
} } break; case "radio": if(data[name] == ""){ input.checked = false; }else if(input.value == data[name]){ input.checked = true; } break; default: input.value = data[name]; } } }) }; data = { "a":"张三", "b":[1,3,4], "c":"2", }; $('#form1').formEdit(data); </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术