gpt4 book ai didi

javascript - 根据先前的选项选择动态更改选择框选项

转载 作者:行者123 更新时间:2023-11-28 02:41:19 25 4
gpt4 key购买 nike

我想要完成的任务如下......HTML

<!doctype html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link href="css/jquery.selectbox.css" type="text/css" rel="stylesheet" />
</head>
<body>



<select name="dateselector_parent" id="dateselector_parent" tabindex="1">
<option value="">--Select Date--</option>
<option value="1">2012</option>
<option value="1">2011</option>
<option value="1">2010</option>
<option value="2">Predefined Dates</option>
</select>

<select name="dateselector_child" id="dateselector_child" tabindex="2">
<option value="">--Select Date--</option>
<option value="1">January</option>
<option value="1">February</option>
<option value="1">March</option>
<option value="1">April</option>
<option value="1">May</option>
<option value="1">June</option>
<option value="1">July</option>
<option value="1">August</option>
<option value="1">September</option>
<option value="1">October</option>
<option value="1">November</option>
<option value="1">December</option>
<option value="2">Current Month</option>
<option value="2">Month to Date</option>
<option value="2">Last 7 Days</option>
</select>


<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery.selectbox-0.2.js"></script>
<script type="text/javascript" src="js/datejs.js"></script>
<script type="text/javascript">
$(function () {
$("#dateselector_parent").selectbox();
$("#dateselector_child").selectbox();
});


</script>
</body>

这会创建两个选择框,我希望一个框根据用户在另一个框上选择的内容显示内容。例如,如果用户选择 2010 年、2011 年或 2012 年,我想将 Jan-Dec 显示为第二个选项。如果用户选择预定义日期,我想显示当前月份、本月至今和过去 7 天。我使用的 javascript 插件允许用户定义 onChange、onOpen 和 onClose 方法。我一直在做一些研究,似乎 AJAX 参与了尝试实现这一目标,但由于我对 PHP 一点也不了解,所以我想知道是否可以使用 jQuery 来实现这一目标。 (我试图解决这个问题,当然没有运气,我不是在找人为我做这件事,我只是想指出正确的方向,无论我是否可以使用 jQuery 来完成这个任务,或者是否有必要使用AJAX,因为我还没有在网上看到仅使用 jQuery 的示例)。

任何帮助将不胜感激

最佳答案

我希望以下内容能够满足您的要求。有 3 个子下拉菜单(无 div)1. --Select--, 2. Jan-Dec 3.其他选项

$().ready(function () {

var selectedOnLoad = $('#dateselector_parent').val();
setChild(selectedOnLoad);

$('#dateselector_parent').change(function () {
var selectedValue = $('#dateselector_parent').val();
setChild(selectedValue);
});

});

function setChild(value){
//Have your three child selector names as follows in your markup as well and assuming they are not in divs
var arr = [ "dateselector_child_", "dateselector_child_1", "dateselector_child_2"];

jQuery.each(arr, function() {
if(this == "dateselector_child_" + value){
$("#" + this).show();
}else{
$("#" + this).hide();
}
});
}

更新:为上述脚本添加标记

<select name="dateselector_parent" id="dateselector_parent" tabindex="1">
<option value="">--Select Date--</option>
<option value="1">2012</option>
<option value="1">2011</option>
<option value="1">2010</option>
<option value="2">Predefined Dates</option>
</select>


<select name="dateselector_child_" id="dateselector_child_" tabindex="2">
<option value="">--Select Date--</option>
</select>

<select name="dateselector_child_1" id="dateselector_child_1" tabindex="2">
<option value="">--Select Date--</option>
<option value="1">January</option>
<option value="1">February</option>
<option value="1">March</option>
<option value="1">April</option>
<option value="1">May</option>
<option value="1">June</option>
<option value="1">July</option>
<option value="1">August</option>
<option value="1">September</option>
<option value="1">October</option>
<option value="1">November</option>
<option value="1">December</option>
</select>

<select name="dateselector_child_2" id="dateselector_child_2" tabindex="2">
<option value="">--Select Date--</option>
<option value="2">Current Month</option>
<option value="2">Month to Date</option>
<option value="2">Last 7 Days</option>
</select>

检查setChild(value)函数。当页面准备好(加载后)以及用户更改选择时,父级的选定值将传递给该函数。父级选择的值可以是“”、“1”、“2”。接下来,foreach 循环查找需要显示的子项的名称,而其他子项则隐藏。如果用户选择父级的 ---Select--- 选项,则该函数将显示“dateselector_child_”,其他两个隐藏。

希望现在已经清楚了......

关于javascript - 根据先前的选项选择动态更改选择框选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12605601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com