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


How to call/activate the 2nd select list only after 1st select list was selected?

我有以下选择列表:

SELECT LIST:

<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。谢谢你!

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