jquery插件loadForm.js 编辑页表单默认数据加载

类似于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~

posted @ 2013-02-20 15:56  花落红尘  阅读(1119)  评论(0编辑  收藏  举报