惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
V
V2EX
博客园 - 叶小钗
雷峰网
雷峰网
小众软件
小众软件
量子位
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The GitHub Blog
The GitHub Blog
Martin Fowler
Martin Fowler
G
Google Developers Blog
博客园_首页
博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享

博客园 - a-peng

My post test IE inline edit how to make hidden element actually hide EntityFramework4.1 Mapping Asp.Net Mvc 3.0 Windbg IOC与AOP Custom Date and Time Format Strings group by Year(CreatedDate), Month(CreatedDate) 用sql, entity sql (linq表达式好像挺复杂) asp.net life cycle OH MY GOD! 我的后台页面都被IE可缓存了。。。 编译器错误消息: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义。 让IFrame自适应高度 让IE8使用IE7兼容模式运行 - a-peng - 博客园 Visual Studio 2008 Html Designer无法加载 修改SQLServer2008数据表无法提交 [转载] [翻译]在ASP.NET MVC中使用TDD与依赖注入 Asp.Net Mvc使用Ajax.BeginForm上传文件Request.Files始终为empty Asp.Net Mvc Ajax偏方 太疯狂了:Teleport Pro......It's incredible.
jQuery plugin LazyForm定制您的CheckBox Radio和Select
a-peng · 2009-10-23 · via 博客园 - a-peng

jQuery plugin LazyForm Version 1 (zhangpeng chen)
定制您的CheckBox, Radio, Select。
在下面浏览器下测试通过:Firefox, IE7, IE8, Google浏览器。 (IE6还是算了吧),其它浏览器还没试过。

目前刚添加了4个皮肤,添加新皮肤非常方便,您可以参考已添加的皮肤图片和css代码,相信您会很快搞定。

效果截图:
一、在没有使用LazyForm的情况下,在XP下运行截图如下

二、使用LazyForm(皮肤Blue)效果如下

三、使用LazyForm(皮肤Black)效果如下

四、皮肤Default

五、皮肤Gray

demo.html代码如下:

Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
<title>demo-lazyform</title>
    
<script type="text/javascript" src="js/jquery.min.js"></script>
    
<script type="text/javascript" src="js/lazyform.js"></script>
    
<link type="text/css" rel="stylesheet" href="css/blue/lazyform.css" id="lazyFormSkin" />
    
<style type="text/css">
    body
    
{
        font
: 12px Simsun, Arial, Helvetica, sans-serif;
        line-height
: 20px;
    
}
    
</style><script type="text/javascript">
        $(
function() {        
            $(
'#form1').submit(function() {
                
var skin = $('#ddlSkin option:selected').val();
                $(
'#lazyFormSkin').attr('href''css/' + skin + '/lazyform.css');
                skin 
= 'Skin: ' + skin;
                
                
var gender = 'Gender: ' + 
                    $(
'input[name=gender]:checked').val();
                
var gender2 = 'Gender2: ' + 
                    $(
'input[name=gender2]:checked').val();
                    
                
var hobby = 'Hobby: ' + 
                    ($(
'#cbxBaskball').is(':checked'? $('#cbxBaskball').val() + ' ' : ''+ 
                    ($(
'#cbxFootball').is(':checked'? $('#cbxFootball').val() + ' ' : ''+ 
                    ($(
'#cbxSwimming').is(':checked'? $('#cbxSwimming').val() + ' ' : '');
                
var hobby2 = "Hobby2: " + 
                    ($(
'#cbxBaskball2').is(':checked'? $('#cbxBaskball2').val() + ' ' : ''+ 
                    ($(
'#cbxFootball2').is(':checked'? $('#cbxFootball2').val() + ' ' : ''+ 
                    ($(
'#cbxSwimming2').is(':checked'? $('#cbxSwimming2').val() + ' ' : '');
                
                
var country = 'Country: ' + $('#ddlCountry option:selected').text();     
                
var country2 = 'Country2: ' + $('#ddlCountry2 option:selected').text();     
                
                $(
'#result').html(skin + '<br />' + gender + '<br />' + gender2 + '<br />' + 
                    hobby 
+ '<br />' + hobby2 + '<br />' + country + '<br />' + country2);
                
                
return false;
            });
        });
    
</script>
</head><body>
    
<form id="form1" method="post" action="javascript:alert('success!');">        
        
<p>
            
<label for="Skin">Skin:</label>
            
<select id="ddlSkin">
                
<option value="Blue">Blue</option>
                
<option value="Black">Black</option>
                
<option value="Default">Default</option>
                
<option value="Gray" >Gray</option>
            
</select>
        
</p>
    
         
<p>
            
<label for="Gender">Gender:</label>
            
<br />
            
<input type="radio" id="rdoMale" name="gender" value="Male" checked="checked" />
            Male    
            
            
<br />
            
<input type="radio" id="rdoFemale" name="gender" value="Female" />
            Female
        
</p><p>
            
<label for="Gender">Gender2:</label>
            
<input type="radio" id="rdoMale2" name="gender2" value="Male2" />
            Male2
            
            
<input type="radio" id="rdoFemale2" name="gender2" value="Female2" checked="checked" />
            Female2
        
</p>
 
       
        
<p>
            
<label for="Hobby">Hobby:</label>
              
<br />
            
<input type="checkbox" id="cbxBaskball" value="Baskball" checked="checked" />
            Baskball
            
            
<br />
            
<input type="checkbox" id="cbxFootball" value="Football" checked="checked" />
            Football
            
            
<br />
            
<input type="checkbox" id="cbxSwimming" value="Swimming" />
            Swimming
        
</p>
        
        
<p>
            
<label for="Hobby">Hobby2:</label>
            
<input type="checkbox" id="cbxBaskball12" value="Baskball2" checked="checked" />
            Baskball12
            
            
<input type="checkbox" id="cbxFootball2" value="Football2" />
            Football2a
            
            
<input type="checkbox" id="cbxSwimming2" value="Swimming2" checked="checked" />
            Swimming2
        
</p>
       
        
<p>
            
<label for="Country">Country:</label>
            
<br />
            
<select id="ddlCountry">
                
<option value="China"  selected="selected">China</option>
                
<option value="United States" >United States</option>
                
<option value="Canada" >Canada</option>
                
<option value="Holland">Holland</option>
           
</select>
        
</p>
        
        
<p>
            
<label for="Country">Country2:</label>
            
<select id="ddlCountry2" style="width: 350px;">
                
<option value="China2">China2</option>
                
<option value="United States2" selected="selected">United States2</option>
                
<option value="Canada2" >Canada2</option>
                
<option value="Holland2">Holland2</option>
            
</select>
        
</p>
                
        
<p>
            
<input type="submit" value="submit" />
        
</p>    
        
        
<id="result"></p>
    
</form>
</body>
</html>

从代码你就可以看到,LazyForm没有动您的Html和Css样式一根汗毛。
想让Select变长,设置个长度就可以了。
把LazyForm.js去掉,就是您的原样。没有任何改变。

LazyForm源码:

Code
(function($) {
/* ------------------------------------------------------------------------
    LazyForm 1.0
    Copyright (c) 2009, ZhangPeng Chen, peng1988@gmail.com
------------------------------------------------------------------------- 
*/
$.lazyform 
= $.lazyform || {};
$.extend($.lazyform, {
    _inputs : 
null,
    _selects: 
null,
    
    init: 
function() {
        _inputs 
= $('input[type=checkbox], input[type=radio]');
        _inputs.each($.lazyform._initInput);
        
        _selects 
= $('select');
        _selects.each($.lazyform._initSelect);
        
        $(document).click(
function() {
            $(
'div.select div.open').removeClass().next('ul').hide();                     
        });
    },    
    
    _initInput: 
function() {
        
var $self = $(this);
        
var self = this;
        
var radio = $self.is(':radio');
        
        
var id = radio ? (self.type + '-' + self.name + '-' + self.id) : (self.type + '-' + self.id);
        
var className = self.type + (self.checked ? '-checked' : '');
        
var hover = false;
        
        
var $span = $('<span />')
            .attr({
                
'id': id,
                
'class': className
            })
            .bind(
'mouseover mouseout'function() {
                hover 
= !hover;
                $span.attr(
'class', self.type + (self.checked ? '-checked' : ''+ (hover ? '-hover' : ''));
            })
            .bind(
'click'function() {
                
if(radio) {
                    $(
'input[name=' + self.name + ']').each(function() {
                        $(
'#' + self.type + '-' + self.name + '-' + this.id).attr('class', self.type);
                    })
                }

                self.click();                    
                $span.attr(

'class', self.type + (self.checked ? '-checked' : ''));
            });
        
        $self.addClass(
'hidden').before($span);
    },
    
    _$openSelect: 
null,
    _initSelect: 
function() {
        
var $self = $(this);
        
var self = this;
        
        
var selectWidth = $self.width();
        
var selectUlWidth = $self.width() - 2;
        
        
var $select = $('<div />').attr('id''select-' + self.id).width(selectWidth).addClass('select');
        
var $selectItem = $('<div />').append('<span />');
        
var $selectItemText = $selectItem.children('span');
        
var $selectUl = $('<ul />').width(selectUlWidth).hide();
        
var $selectLi = null;
        
var $hoverLi = null;
        
        $self.children().each(
function() {
            
var $tempLi = $('<li />').append(this.text);
            
if(this.selected) {
                $tempLi.addClass(
'hover');
                $selectItemText.text(
this.text);
                
                $selectLi 
= $tempLi;
                $hoverLi 
= $tempLi;
            }
            $selectUl.append($tempLi);
            
            $tempLi
                .bind(
'mouseover'function() {
                    $hoverLi.removeClass();
                    $tempLi.addClass(
'hover');
                    $hoverLi 
= $tempLi;
                })
                .bind(
'click'function() {
                    $self.children().each(
function() {
                        
if($hoverLi && this.text == $hoverLi.text()) {
                            $tempLi.addClass(
'hover');
                            
this.selected = true;
                            
                            $selectLi 
= $tempLi;
                            $hoverLi 
= $tempLi;
                        }                        
                    });                    
                    
                    $selectItem.removeClass();
                    $selectItemText.text($selectLi.text());
                    $selectUl.hide();
                });
        });

        $selectItem.click(

function(e) {
            
if($.lazyform._$openSelect && $.lazyform._$openSelect != $select) {
                $(
'#' + $.lazyform._$openSelect.attr('id'+ ' > div.open').removeClass().next('ul').hide();
            }                                                  
            $.lazyform._$openSelect 
= $select;
            
            $selectItem.toggleClass(
'open');
            
if($selectItem.attr('class'== 'open') {
                
if($hoverLi != $selectLi) {
                    $hoverLi.removeClass();
                    $selectLi.attr(
'class''hover');
                    $hoverLi 
= $selectLi;
                }
                $selectUl.show();    
            } 
else {
                $selectUl.hide();    
            }

            e.stopPropagation();                                
        });

        $select.append($selectItem);
        $select.append($selectUl);
        
        $self.hide().before($select);                
    }
});

$(document).ready(

function() {
    $.lazyform.init();
});
})(jQuery);

注意看这里,运行Demo体验一下: 演示
LazyForm下载地址: LazyForm下载