在动态加载的<select> </select> </option>中通过JQuery自动选择<option>

时间:2013-01-10 02:53:51

标签: jquery html select dynamic option

基于很酷的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()函数是否未完成?

谢谢!

1 个答案:

答案 0 :(得分:0)

.load是一个异步函数。当.load正在运行时,jQuery将继续运行,因此第二个$("#category_A1").val("<?php echo $_POST['category_A1']; ?>");将始终被$("#category_A1").load("http://domain.com/loader/"+$("#category_A0").val());

的结果覆盖
相关问题