【发布时间】:2023-03-29 09:00:01
【问题描述】:
我有一个多级选择链,其中通过第一个选择的值生成下一个选择列表的选项。在第二个列表中,一些值会导致 div 与另一个输入一起显示。
在静态内容上测试时,我的代码(如下)似乎工作得很好(即:第二个选择在 html 中被硬编码)。但是当我用JQuery添加时,第二级不再触发.change函数。
<script type="text/javascript">
$(document).ready(function() {
$dts = $("select[name='tourdes']");
$dts.change(function() {
var dtsValue = $(this).val();
var dtsString = '?tourdes=' + dtsValue;
$('#dateSelect').show();
$('#dateSelect').load('include/avdates.php' + dtsString).append();
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$tags = $("select[name='tourcode']");
$tags.change(function() {
if ($(this).val() == "private") {
$(".prvcal").css({"visibility":"visible"});
}
});
});
</script>
我猜有些东西需要重新初始化,但我的实验一无所获。
【问题讨论】:
-
您的代码是重建整个
<select>元素还是只是重新执行其中的<option>标签?如果是前者,那么问题在于您的处理程序绑定将无法在重新生成元素后继续存在。 -
你应该只有一个 $(document).ready(function(){}}; 将两个更改函数放在 1 个就绪函数中会发生什么?
-
它用
-
我确实尝试将它们组合在一起但没有效果。它们目前是分开的,只是为了让代码更容易找到。