u012503756
bulidfer
2018-08-04 19:06
采纳率: 35.3%
浏览 1.9k
已采纳

select2 ajax 获取java后台数据 提示params is not defined

下拉框没有任何选项内容

图片说明

js代码

 /* 执行select2方法初始化 */
function select2Execute() {

    var dataList = [
                    { id: 0, text: 'enhancement' }, 
                    { id: 1, text: 'bug' }, 
                    { id: 2, text: 'duplicate' }, 
                    { id: 3, text: 'invalid' }, 
                    { id: 4, text: 'wontfix' }
                  ];

    var dataList1=[{'id':"1","text":"enhancement"}];




    $(function() {
/*本地注入方式*/
        /*$("select[name='xuewei_id']").select2({
            // $('select[id="xuewei_id"]').select2({
            // $('#xuewei_id').select2({
            // $("#selectSection").find("select.combox").select2({
            // $(".select2-selection__choice").select2();
            // $(".combox").select2({

            placeholder : "请至少选择一个人名",
            tags : true,
            createTag : function(decorated, params) {
                return null;
            },
            width : '256px',

        });*/

        //two  AJAX获取数据方式
        //$("select[name='xuewei_id']").select2({
        $(".downList2").select2({
          ajax: {
            type:'GET',
//          url: '/erzhentang/manage/forAjax.do?requestType=12.1',
            url: dataList1,
            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 = [];
              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 * 2) < data.total_count
                }
              };
            },
            cache: true
          },
          placeholder:'请选择',//默认文字提示
          language: "zh-CN",
          tags: true,//允许手动添加
          allowClear: true,//允许清空
          escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
          minimumInputLength: 0,
          formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
          formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
        });




        function formatState(state) {
            if (!state.id) {
                return state.text;
            }
            var $state = $('<span>' + state.text + '</span>');
            return $state;
        }
        ;

        $('#sel_recommender').select2({
            placeholder : "请选择一个人名",
            templateResult : formatState,
            width : '256px'
        });

        // 通过id获取select2的text值,这里的text值可能有空格,需注意
        function getSelect2Text(obj) {
            var select2Obj = $("select[name='xuewei_id']").select2();
            return select2Obj.find("option:selected").text();
        }


        /* 获取每一个name对应的值 */
        var strXueweiId = "";
        $("[name=xuewei_id]").each(function() {
            alert("this值:" + $(this).val());
            /* 拼接每一项name的值 组合成和其它项目类似 gender那样的数组 */
            strXueweiId += $(this).val() + "-";

        });
        alert("strXueweiId:" + strXueweiId)
        $("#strXueweiId").val(strXueweiId)


    });
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • caozhy
    已采纳

    看你的java程序,processResults:返回的对不对

    返回的选项必须处理成以下格式
    var results = [{ id: 0, text: 'enhancement' }, { id: 1, text: 'bug' }, { id: 2, text: 'duplicate' }, { id: 3, text: 'invalid' }, { id: 4, text: 'wontfix' }];

    https://blog.csdn.net/szhielelp/article/details/73556066

    点赞 评论
  • batterMRTAN
    batterMRTAN 2018-08-05 00:05

    //two AJAX获取数据方式
    这个方法里的url是dataList1,这个是个json,是不是你的参数啊
    好像你没写对url

    点赞 评论
  • u012503756
    bulidfer 2018-08-05 02:00

    后台代码

        if("12.5_1".equals(requestType)){//查询科研检测穴位
                String jsonOM = "["+ "{\"id\":\"68\",\"body_name\":\"平和质\"},{\"id\":\"104\",\"body_name\":\"特禀质\"}]";
                        JSONArray ja = JSONArray.fromObject(jsonOM);
                OutputUtil.outPutJsonArrary(response, ja);// 用jsonArray数组
        }
    
    
    
    

    js代码 url已更换 还是 不执行

         $(".downList2").select2({
              ajax: {
                type:'GET',
                url: '/erzhentang/manage/forAjax.do?requestType=12.5_1',
    //          url: dataList1,
                dataType: 'json',
                delay: 250,
                data: function (params) {
                  return {
                    q: params.term, // search term 请求参数
                    page: params.page
                  };
                },
    

    图片说明

    点赞 评论

相关推荐