当前位置: 首页 > 面试题库 >

在带有Ajax的Select2上设置加载时的初始值

劳英华
2023-03-14
问题内容

我已经使用Ajax设置了select2控件(具有单个和多个)。我正在尝试在页面加载中包含一些值,但是却无法使它正常工作。我的select2代码如下:

function AjaxCombo(element, url, multival ){  // multival = true or false
  multival = multival || false;
  $(element).select2({
   minimumInputLength: 2,
   multiple: multival,
   separator: '|',
   ajax: {
     url: url,
     dataType: 'json',
     data: function (term, page) {
        var targetname = $(this).attr('name');
        var target = targetname.slice(targetname.indexOf("[")+1, targetname.indexOf("]"));
       return {
         targettype: "search",
         target: target,
         search: term
       };
     },
     results: function (data, page) {
       return { results: data };
     }
   }
 });
}
AjaxCombo(".ajaxselect", "includes/linkedcontrol.php", false);
AjaxCombo(".ajaxmultiselect", "includes/linkedcontrol.php", true);

Ajax组合正常工作,仅在加载初始值时遇到麻烦。我在下面尝试了此代码,但无法正常工作:

initSelection : function (element, callback) {
    var elementText = $(element).attr('data-initvalue');
    callback(elementText);
}

我从php返回的HTML如下:

<input name='header[country]' class='ajaxselect'  data-initvalue='[{"id":"IN","name":"India"}]' data-placeholder='Select Country' value='' />

我看到值是从php填充的,只有我的jquery有问题。我在控件中的值显示为US | United States of America。我想我已经编辑了select2源,以便在不使用format选项的情况下将此格式作为默认格式。

谁能帮我填充默认值吗?提前致谢。

编辑: 此问题与Select2版本<4.0有关。此选项已从v4.0中删除,并且现在更加简单。


问题答案:

您指定为as的函数initSelection以初始valueas作为参数调用。因此,如果value为空,则不会调用该函数。
当您指定value='[{"id":"IN","name":"India"}]'而不是data- initvalue函数时,将调用该函数,并且可以初始化选择。



 类似资料:
  • 我开始使用钩子,我遇到了一个问题。 我有一个状态: 最初设置为,它在初始渲染时正确渲染。 但问题是,我希望它的值是我使用hook在初始渲染中获取的数组的长度 但是我不知道阵列的长度,直到组件安装完毕。 所以,在这个函数中,我试图访问priceToFilter,但它返回,因为这是它的初始值。 但是,如果您在中看到,我将通过函数将设置为另一个值。但是,当发生在初始化挂载之后时,它不会获得新值,而是保持

  • 问题内容: 我通过Google colab训练了CNN(VGG),并生成了.h5文件。现在的问题是,我可以通过google colab成功预测我的输出,但是当我下载经过.h5训练的模型文件并尝试在笔记本电脑上预测输出时,加载模型时出现错误。 这是代码: 错误: 问题答案: 我遇到了同样的问题。更改后: 至: 生活再次值得生活。

  • 当安装完成并首次启动 Navicat Monitor 时,浏览器会弹出并打开你的 Navicat Monitor 的网址“http://<your_ip_address>:<port_number>”。你需要在欢迎页面完成 Navicat Monitor 的基本配置。 【注意】<your_host_address> 是安装了 Navicat Monitor 的系统的主机名,以及 <port_num

  • 在开始开发PX4之前,系统应当以默认配置进行初始化,以确保硬件已正确装配并通过测试。下方视频讲解了 Pixhawk硬件与QGroundControl的安装过程。 这里是已支持的参考机架列表。 须知: 下载DAILY BUILD版本的QGroundControl并跟随下方的视频教程来设置你的飞行器。参考QGroundControl 教程来了解任务规划(mission planning),飞行(fly

  • 在此示例中:https://jsfiddle.net/wqd4ebyn/2/: 我正在尝试使用ajax获取远程数据并使用当前选项预加载列表。除非我删除了ajax,否则它不起作用: 我的列表太大了。我想要的是列出一些非常常见的选项,其余的由ajax列出。当前的实现确实允许两者兼而有之,静态选项或动态选项。我需要两者。

  • 问题内容: 有人可以告诉我如何通过JavaScript修改或添加POST变量来刷新当前页面吗? 需要明确的是,我想在重新加载页面之前设置一些POST变量。 问题答案: 通过使用jQuery Ajax,您可以重新加载页面