• 3月
    24日
    锋利的jQuery —— (5)jQuery对表单、表格的操作
    jQuery dier 2014-03-24 14:43 1859 0

    《锋利的jQuery》读书笔记 —— jQuery对表单、表格的操作

    ·单选文本框应用(获得焦点时,加了个特殊的样式,失去焦点时还原,兼容所有浏览器)
    $(":input").focus(function(){ this.addClass("inputFocus"); })
               .blur(function(){ this.removeClass("inputFocus"); });
    
    ·多行文本框的应用(放大、缩小多行文本框的高度,限制最大500px,兼容所有浏览器)
    var $txt = $("#textArea");
    $(".bigger").click(function(){
        if( $txt.height() < 500) $txt.height( $txt.height() + 50 );
        //if( $txt.height() < 500) $txt.animate({height:"+=50"}, 500 );
    });
    $(".smaller").click(function(){
        if( $txt.height() > 100) $txt.height( $txt.height() - 50 );
        //if( $txt.height() < 500) $txt.animate({height:"-=50"}, 500 );
    });
    
    ·复选框的应用(实现全选、全不选、反选)
    $("#btnCheckedAll").click(function(){ //全选
        $("[name=items]:checkbox").attr("checked", true);
    });
    $("#btnCheckedNone").click(function(){ //全不选
        $("[name=items]:checkbox").attr("checked", false);
    });
    $("#btnCheckedRev").click(function(){ //反选
        $("[name=items]:checkbox").each(function(){
            $(this).attr("checked", !$(this).attr("checked"));
            //this.checked = !this.checked;
        }
    });
    
    ·下拉框的应用(将一个下拉列表的选中项搬至另一个下拉列表)
    $("#btnAdd").click(function(){ //将选中选项搬过去
        $("#mySelect1 option:selected").appendTo("#mySelect2");
    });
    $("#btnAddAll").click(function(){ //将全部选项搬过去
        $("#mySelect1 option").appendTo("#mySelect2");
    });
    $("#mySelect1").dblclick(function()[ //双击项搬过去
        $("#mySelect1 option:selected").appendTo("#mySelect2");
    }
    
    ·表单验证
    <form>
        <div>
            <label>用户名:</label>
            <input type="text" id="txtUid" class="required" value="" />
        </div>
    </form>
    $("form :input.required").each(function(){ //往每个class有required样式的input元素后面添加*号
        $(this).parent().append( $("<span class='star'>*</span>") );
    });
    $("form :input.required").blur(function(){ //失去焦点时验证域
        if( this.value == "" ){
            $(this).parent().append( $("<span class='error'>必填字段</span>") );
        }
        else{
            $(this).parent().append( $("<span class='success'>验证正确</span>") );
            $(this).parent().find(".error").remove();
        }
    }).keyup(function(){ //用户每点一个键触发
        $(this).triggerHandler("blur");
    }).focus(function(){ //控制有焦点时触发
        $(this).triggerHandler("blur");
    });
    $("#btnSubmit").click(function(){
        $("form :input.required").trigger("blur"); //让所有需要验证的域失去焦点
        var errNum = $("form .error").length;
        if( errNum ){
            alert("有验证字段失败,请重新填写");
            return false;
        }
    });
    
    ·表格应用
    $("tr:odd").addClass("oddTr"); //给奇数行添加oddTr样式
    $("tr:even").addClass("evenTr"); //给偶数行添加evenTr样式
    
    $("tr:contains('王五')").addClass("highlightTr"); //查找包含“王五”的行,添加highlightTr样式
    
    $("tr").click(function(){
        $(this).addClass("selectedTr") //给当前行添加选中样式
               .siblings().removeClass("selectedTr") //反选移除选中样式
               .end() //结束,返回$(this),否则则是反选的行
               .find(':radio").attr("checked",true); //在当前行查找单选框,选中它
    });


文章评论