zoukankan      html  css  js  c++  java
  • select2中的ajax请求

    下面介绍select2.js的方法,已经整理好文件,可以直接下载使用:

    实现效果如下: 引用文件:select2.min.css jquery.js select2.full.min.js

    <h3>本地数据方式</h3>
    <select class="form-control input-sm downList1">
        <option></option>
    </select>
    
    <h3>AJAX获取数据方式</h3>
    <select class="form-control input-sm downList2">
        <option></option>
    </select>
    

     本地数据方式:
    html的select中的option是可选的,如果不写一个空的option标签,则默认选择第一项;如果写了option标签,则默认为空,但调用的时候,最好设置placeholder属性,为了美观;AJAX获取数据方式:
    html的select中的option是必选的

    <script type="text/javascript">
     //one 本地数据方式
     var dataList = [
         { id: 0, text: 'ljiong.com(老囧博客)' }, 
         { id: 1, text: 'Ants(蚂蚁)' }, 
         { id: 2, text: 'can you speak javascript(你能讲JavaScript嘛)' }, 
         { id: 3, text: 'vae(许嵩)' }, 
         { id: 4, text: 'Badminton(羽毛球)' }
     ];
     $(".downList1").select2({
         data: dataList,
         placeholder:'请选择',//默认文字提示
         language: "zh-CN",//汉化
         allowClear: true//允许清空
     })
     
     //two AJAX获取数据方式(请求一次)
     var oneReq = [];
     $.ajax({
         type:"post",
         url:"URL",
         dataType:"json",
         contentType:"application/json",
         success:function(data){
             oneReq = data;
         },
         error:function(data){
    
         }
     });
     $(".downList2").select2({
         data: oneReq,
         placeholder:'请选择',//默认文字提示
         language: "zh-CN",//汉化
         allowClear: true//允许清空
     })
    
     //two AJAX获取数据方式(每次请求)
     $(".downList2").select2({
         ajax: {
             type:'GET',
             url: "url",
             dataType: 'json',
             delay: 250,
             data: function (params) {
                 return {
                     q: params.term, // search term 请求参数
                     page: params.page
                 };
             },
             processResults: function (data, params) {
                 params.page = params.page || 1;
                 /*var itemList = [];//当数据对象不是{id:0,text:'ANTS'}这种形式的时候,可以使用类似此方法创建新的数组对象
                 var arr = data.result.list
                 for(item in arr){
                     itemList.push({id: item, text: arr[item]})
                 }*/
                 return {
                     results: data.items,//itemList
                     pagination: {
                         more: (params.page * 30) < data.total_count
                     }
                 };
             },
             cache: true
         },
         placeholder:'请选择',//默认文字提示
         language: "zh-CN",
         tags: true,//允许手动添加
         allowClear: true,//允许清空
         escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
         minimumInputLength: 1,//最少输入多少个字符后开始查询
         formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
         formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
     });
    </script>
    

     获取选中的值:

    获取id: $(".downList2").select2("data")[0].id;
    获取text: $(".downList2").select2("data")[0].text;
    
    也可使用一下方式取值:
    
    $(".downList2").val();
    $(".downList2").select2('val');
    

    清空选择项和设置不可用

    //清空选择
    $("#c01-select").val(null).trigger("change");
    $("#c01-select").val("你的placeholder").trigger("change");//或者
    //如果你使用的是input标签(默认就是本地数据),你可以用$("#c01-select").val('');来清空选项
    
    //disabled
    $("#c01-select").prop("disabled", false);//可用
    $("#c01-select").prop("disabled", true);//不可用
    
  • 相关阅读:
    专职DBA-MySQL主从延时复制
    专职DBA-MySQL主从异步复制
    专职DBA-MySQL连接启动与多实例数据库
    Java日期时间2
    Java日期时间
    763. Partition Labels
    377. Combination Sum IV
    459. Repeated Substring Pattern
    784. Letter Case Permutation
    526. Beautiful Arrangement
  • 原文地址:https://www.cnblogs.com/hycms/p/9130535.html
Copyright © 2011-2022 走看看