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

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - 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下载