1

好的,我在选择字段上有一个 onchange 事件。现在效果很好。当下拉“网络”更改时,它会刷新第二个下拉列表。我还希望顶部的 ajax 代码在页面加载和 onchange 时触发,以便填充第二个列表。这是因为它位于编辑页面上。这是我首先使用的ajax调用

function get_cities(networks) {
    $.ajax({
        type: "POST",
        url: "select.php", /* The country id will be sent to this file */
        beforeSend:     function () {
            $("#folder").html("<option>Loading ...</option>");
        },
        //data: "idnetworks="+networks,
        data: "idnetworks="+networks +"&doc="+ <?php echo $row_rs_doc['parentid']; ?>,
        success: function(msg){
            $("#folder").html(msg);
        }
    });
} 

现在两个下拉框

<label for="networks"></label>
<select name="networks" id="networks" onChange='get_cities($(this).val())'>
    <?php
    do {  
    ?>
        <option value="<?php echo $row_rs_net['idnetworks']?>"<?php if (!(strcmp($row_rs_net['idnetworks'], $row_rs_doc['network']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rs_net['netname']?></option>
    <?php
    } while ($row_rs_net = mysql_fetch_assoc($rs_net));
    $rows = mysql_num_rows($rs_net);
    if($rows > 0) {
        mysql_data_seek($rs_net, 0);
        $row_rs_net = mysql_fetch_assoc($rs_net);
    };
    ?>
</select>
<select name="folder" id="folder">
</select>
4

3 回答 3

1

您可以使用在选择框上.trigger()触发一个change事件,以便调用 onchange 代码,就像用户刚刚切换选项一样。

jQuery('#networks').trigger('change');

只需将其包含在页面的加载事件/函数中即可。

jQuery(document).ready(function() {
    jQuery('#networks').trigger('change');
});
于 2012-07-18T13:19:42.220 回答
0

我不是 100% 清楚你想要什么,但是在页面加载时使用 JQuery 做某事的标准方法是使用

$(document).ready(handler)

这会等到页面“准备好”,这样会更好。

所以,在你的文件头你会有这样的东西......

<script type="text/javascript">
$(document).ready( function(){
  do_some_stuff();
});
</script>
于 2012-07-18T13:17:31.540 回答
0

你不能get_cities($('#networks').val())在 DOM 准备好时调用吗?

$(function() { // will be run by jQuery when DOM is ready
  get_cities($('#networks').val());
});
于 2012-07-18T13:19:23.537 回答