如何在选择第一个选择列表后调用/激活第二个选择列表?

时间:2013-01-18 23:11:17

标签: php jquery html

我有以下选择列表:

SELECT LIST 1:

<select name="productcolor" id="productcolor" onChange="GetAvailProductSizes();">
    <option value=""><? echo $langdata['oneprodpage_selectcolor']; ?>...</option>
    <? foreach ($thisproduct['availcolors'] as $color) { ?>
    <option value="<? echo $color['id']; ?>"><? echo $color['name']; ?></option>
    <? }; ?>
</select>

SELECT LIST 2:

<select name="productsize" id="productsize" style="width: 120px;">
<option value=""><? echo $langdata['oneprodpage_selectsize']; ?>...</option>
</select>

如果在LIST 1中没有选择的选项,LIST 2将为空。这就像LIST 2取决于LIST 1。

这是通过此功能实现的:

<script type="text/javascript"><!--
    function GetAvailProductSizes() {
        $('select#productsize option').remove();
        $('select#productsize').append('<option value=""><? echo $langdata['oneprodpage_selectsize']; ?>...</option>');

        var color = $('#productcolor').val();
        if (color > 0) {
            var availsizes;
            var http_request = new XMLHttpRequest();
            http_request.open( "GET", '<? echo ROOT; ?>/autocompleteavailsizes/?productid=<? echo $thisproduct['id']; ?>&color=' + color, true );
            http_request.send(null);
            http_request.onreadystatechange = function () {
                if ( http_request.readyState == 4 ) {
                    if ( http_request.status == 200 ) {
                        availsizes = eval( "(" + http_request.responseText + ")" );

                        for (var i = 0; i < availsizes.length; i++) {
                            $('select#productsize').append('<option value="' + availsizes[i].id + '">' + availsizes[i].name + '</option>');
                        };
                    } else {
                        alert( "There was a problem with the URL." );
                    }
                    http_request = null;
                }
            };
        };
    }
//-->
</script>

现在,我希望隐藏SELECT LIST 2,直到没有触及SELECT LIST 1。任何帮助请使用PHP或jQuery。谢谢!

1 个答案:

答案 0 :(得分:0)

只需将display:none添加到第二个列表的style属性中,然后在您的函数中使用$('select#productsize').show();即可显示,