0

我有以下选择列表:

选择列表 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>

选择清单 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 的帮助。谢谢!

4

1 回答 1

0

只需添加display:nonestyle第二个列表的属性并$('select#productsize').show();在你的函数中使用让它出现,

于 2013-01-18T23:27:37.203 回答