zoukankan      html  css  js  c++  java
  • 前端input框结合[chosenJquery]下拉框可输入可搜索

     input框结合[chosenJquery]下拉框可输入可搜索

           【html:】
            .....
            <td style="38%;text-align: left;padding-top: 13px;">
                <input type="text" name="COLLECTION_NAME" id="COLLECTION_NAME" value="${pd.COLLECTION_NAME}"  onblur="codeByName()" maxlength="50" placeholder="这里输入用例集名称" title="用例集名称" style="98%;"/>
                <input type="hidden" id="COLLECTION_ID" value=""/>
            </td>
            .....
            
            
            【js:】
            var arrayList;
            //用例集名称输入框智能搜索(加载页面时ajax获取下拉列表数据,然后获取焦点时显示列表[一次加载多次使用])        
            $(function() {
                 var availableTags = [];
                     $.ajax({
                            type: "POST",
                            url: '<%=basePath%>cases/getCollectionName.do',
                            data: {},
                            dataType:'json',
                            cache: false,
                            success: function(data){
                                if("success" != data.result){
                                    alert("出错啦,请与管理员联系!");
                                    return false;
                                 }else{
                                        //availableTags = data.jsonArray;
                                        $.each(data.jsonArray,function(index,jsonArrayList){
                                            arrayList = data.jsonArray;
                                            var strval = {label:jsonArrayList.COLLECTION_NAME,value:jsonArrayList.COLLECTION_NAME,id:jsonArrayList.COLLECTION_ID,code:jsonArrayList.COLLECTION_CODE};
                                            availableTags.push(strval);
                                        });
                                    }        
                                }
                    });
                       //定义下拉框列表        
                    $("#COLLECTION_NAME").autocomplete({
                            minChars:0,
                            minLength: 0,
                            autoFill:true,
                            matchContains:true,
                            mustMatch:true,
                            matchSubset:true,
                            cacheLength:20,
                            source:availableTags,
                            /* function(request,response){
                                    response($.map(availableTags,function(item){
                                        return {
                                                label:item.label,//下拉框显示值
                                                value:item.value,//选中后,填充到下拉框的值
                                                id:item.id,//选中后,填充到id里面的值
                                                code:item.code//选中后,填充到code里面的值    
                                        }
                                    }));
                            }, */
                            select : function(event, ui) {
                                    $(this).value = ui.item.label;
                                    $("#COLLECTION_NAME").val(ui.item.value);
                                    $("#COLLECTION_ID").val(ui.item.id);
                                    $("#COLLECTION_CODE").val(ui.item.code);
                                    //event.preventDefault();//阻止事件默认行为,防止输入框默认取ui.item.value
                                    return false;
                            }
                            
                    }).focus(function(){
                                 $(this).autocomplete("search");
                                     return false;
                                     
                                });
                    
              });
              
              //在input输入框按backspace(退格键)时清空valu值
              $(document).bind("keydown",function(e){
                   e = e ? e : event;   
                     if(e.keyCode == 8){
                         var target=$.event.fix(e).target;
                         if($(target).attr("id") == "COLLECTION_NAME"){
                                $(target).val("");
                                forbidBackSpace(e);
                         }
                     }
             });
              
              //清空只读文本框中的用例集编号
            function forbidBackSpace(e) {
                var ev = e || window.event; //获取event对象
                var obj = ev.target || ev.srcElement; //获取事件源
                var t = obj.type || obj.getAttribute('type'); //获取事件源类型
                //获取作为判断条件的事件类型
                var vReadOnly = obj.readOnly;
                var vDisabled = obj.disabled;
                //处理undefined值情况
                vReadOnly = (vReadOnly == undefined) ? false : vReadOnly;
                vDisabled = (vDisabled == undefined) ? true : vDisabled;
                
                //当敲Backspace键时,事件源类型为密码、多行文本的,则退格键失效
                var flag2 = ev.keyCode == 8 && t != "password" && t == "text"
                        && t != "textarea";
                //判断
                if (flag2) {
                    var startIsFocus = $("#COLLECTION_CODE").is(":focus");
                    if (false == startIsFocus) {
                        $("#COLLECTION_CODE").val("");
                    }
                    return event.returnValue = false;
                };
            }
            //禁止后退键 作用于Firefox、Opera
            document.onkeypress = forbidBackSpace;
            //禁止后退键  作用于IE、Chrome
            document.onkeydown = forbidBackSpace;
              
              //手动填入用例集名称联动用例集合编号
              function codeByName(){
                  $.each(arrayList,function(index,arrayList){
                    if(arrayList.COLLECTION_NAME == $("#COLLECTION_NAME").val()){
                         $("#COLLECTION_CODE").val(arrayList.COLLECTION_CODE);
                         $("#COLLECTION_ID").val(arrayList.COLLECTION_ID);
                    }
                                 
                });
              }

  • 相关阅读:
    bower一个强大的前端依赖包管理工具
    Nodejs中的this
    探讨Nodejs中的作用域问题。
    初了解NodeJS
    小心情。
    关于数组方面的算法分析
    JS算法总结
    JS Event事件
    封装Js事件代理方法
    SqlServer 操作 JSON
  • 原文地址:https://www.cnblogs.com/xiaweicn/p/14477606.html
Copyright © 2011-2022 走看看