javascript - 加载页面时将值发布到相关下拉菜单

标签 javascript jquery drop-down-menu jquery-select2-4 jquery-select2

搜索此网站后,找到了一种使用ajax轻松制作依赖下拉菜单的方法(之前使用过“kartik dependent dropdown”插件,但它不适用于select2,因此需要自定义解决方案)。当从父下拉列表中选择任何选项时,我可以使从属(子)下拉菜单完美工作,但在加载页面时无法显示从属下拉菜单(需要先单击父下拉列表中的某些选项)。代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Dynamic Dependent Select Box</title>
<link href="css/styles.css" rel="stylesheet" />
<script src="ajax/jquery.min.js"></script>
<script src="ajax/plugins/forms/select2.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(".parent1").select2();
$(".child1").select2();

$(".parent1").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;

$.ajax
({
type: "POST",
url: "test_ajax.php",
data: dataString,
cache: false,
success: function(html)
{
$("select.child1").html(html);
}
});
});
});
</script>
</head>
<body>
<select name="parent1" class="parent1">
<option value="1">something</option>
<option value="2" selected>something good</option>
<option value="3">who cares</option>
</select>
<select name="child1" class="child1">
</select>
</body>
</html>

这是 test_ajax.php 源代码:

    <?php
if (!isset($_POST['id']))
{
    exit();
}
else
{
    echo "<option value=\"".$_POST['id']."\">".$_POST['id']."</option>";
}
?>
<option value="aaa">aaa</option><option value="bbb">bbb</option><option value="ccc">ccc</option>

我应该如何修改代码,以便在加载页面时将初始值 ( <option value="2" selected>something good</option> ) 发布到 test_ajax.php (这样子下拉列表在页面加载时不为空)?

在本页找到了一些示例,但它们是针对 select2 3.x 版本的,示例中使用的函数在 4.x 版本中已弃用

最佳答案

您可以手动触发 change 事件,这应该会导致发送您的 AJAX 请求。

if ($('select.parent1').val()) {
  $('select.parent1').trigger('change');
}

关于javascript - 加载页面时将值发布到相关下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34993954/

相关文章:

html - 导航栏下拉元素不可见

javascript - 如何为特定页面的 ion-nav-bar 添加额外的按钮?

javascript - onBlur 在 React 下拉组件中不起作用

javascript - 将变量放入链接中

javascript验证码不验证

python - 为什么在我给出位置参数时 lambda 返回 "<lambda>() takes 0 positional arguments but 1 was given"?

javascript - Node.js 中的 UTF-16

javascript - Moment.js 其他时区的本地时间转为 UTC

jquery - 使用 jquery 删除跨度和接下来的 2 个字符

reactjs - 选定的值未显示在文本字段选择中 - Material UI react 组件