类似于easyui form load 只不过独立了出来,简易版,支持input、textarea、select、radio、checkbox 表单元素的数据默认加载;
使用方法:
$(function(){ $('#formname').loadForm(1,'edit.php'); })
两个参数,第一个是数据id,就是数据在数据库中的记录数或主键
传递到服务器数据为
edit.php?ids=1
默认为GET方式 也可自己修改为POST方式
(function($) { /** * setValue of the input textarea select fields */ function _load(data,form){ for(var name in data){ var val = data[name]; var rr = _checkField(name, val,form); if (!rr.length){ $('input[name="'+name+'"]', form).val(val); $('textarea[name="'+name+'"]', form).val(val); $('select[name="'+name+'"]', form).val(val); } } } /** * check the checkbox and radio fields */ function _checkField(name, val,form){ var rr = $('input[name="'+name+'"][type=radio], input[name="'+name+'"][type=checkbox]', form); $.fn.prop ? rr.prop('checked',false) : rr.attr('checked',false); rr.each(function(){ var f = $(this); if(String(val).indexOf(',')==-1){ if(f.val()==String(val)){ $.fn.prop?f.prop("checked",true):f.attr("checked",true); } }else{ temparr = String(val).split(','); if($.inArray(f.val(),temparr) != -1){ $.fn.prop?f.prop("checked",true):f.attr("checked",true); } } }); return rr; } $.fn.loadForm = function(ids,url){ var form = this; var pattern = /.+\.(aspx|php|html)$/i; var isAddress = pattern.test(url); if(isAddress){ $.ajax({ url: url, type:"GET", data: "ids="+ids, dataType: 'json', cache:false, success: function(data){ _load(data,form); } }); } } })(jQuery);
也可以把这方法作为扩展添加入 form插件中,其实他本意就是为了扩展jquery form 而来,第一次写插件,功能相对简单,我会努力的,O(∩_∩)O~