基于很酷的StackOverflow代码,我成功创建了一系列动态加载的<SELECT>
下拉列表。但是,在处理表单时(例如,如果提交的信息中存在错误),我需要在动态加载的<OPTION>
块中自动选择适当的<SELECT>
。我尝试了一个适用于静态<SELECT>
块的解决方案,但它不适用于我的动态加载块。 (我在需要时隐藏/显示<SELECT>
块。)这是代码:
<?php do things at the beginning of the page ?>
<script>
$(function() {
$('#container_A1').hide();
$"#category_A0").change(function() {
$("#category_A1").load("http://domain.com/loader/"+$("#category_A0").val());
$("#container_A1").show();
});
});
</script>
<?php create the HTML page... ?>
<script><?php
if( isset($_POST['category_A0']) && $_POST['category_A0'] != '' &&
isset($_POST['category_A1']) && $_POST['category_A1'] != ''){ ?>
$(function() {
$("#category_A1").load("http://domain.com/loader/"+$("#category_A0").val());
$("#container_A1").show();
$("#category_A1").val("<?php echo $_POST['category_A1']; ?>"); // NOT WORKING
});
<?php
}
?>
</script>
除了尝试将category_A1 <SELECT>
块的值设置为$ _POST ['category_A1']中定义的选项的最后一个JQuery行之外,一切正常。这不起作用。调用后续的.val()函数时,.load()函数是否未完成?
谢谢!
答案 0 :(得分:0)
.load是一个异步函数。当.load正在运行时,jQuery将继续运行,因此第二个$("#category_A1").val("<?php echo $_POST['category_A1']; ?>");
将始终被$("#category_A1").load("http://domain.com/loader/"+$("#category_A0").val());