0

我主要从事 PHP 编程,但由于我完全不了解 Javascript 或 Ajax,因此陷入了 Ajax 问题。我现在有一个组合选择菜单,如果第一个选择是='train',我想隐藏第三个选择菜单(方向)。我读到有些浏览器不支持隐藏功能,因此下一个最佳选择是在选择第二个选项时禁用第三个选择菜单,假设第一个是火车。如果是总线,则仍应显示第三个选择菜单。这是我现在的javascript,我相信你可以想象它不起作用。

    $(document).ready(function(){
            if ($("select#agency").attr('value') == 'cta-train') {
        $("select#direction").attr("disabled","disabled");
    }

        $("select#route").attr("disabled","disabled");
        $("select#agency").change(function(){
        $("select#route").attr("disabled","disabled");
        $("select#route").html("<option>wait...</option>");
        var id = $("select#agency option:selected").attr('value');
        $.post("select_route.php", {id:id}, function(data){
            $("select#route").removeAttr("disabled");
            $("select#route").html(data);
        });
    });
});


    $(document).ready(function(){
            if ($("select#agency").attr('value') == 'cta-train') {
        $("select#direction").attr("disabled","disabled");
    }
    else {
        $("select#direction").attr("disabled","disabled");
        $("select#route").change(function(){
        $("select#direction").attr("disabled","disabled");
        $("select#direction").html("<option>wait...</option>");
        var id = $("select#route option:selected").attr('value');
        $.post("select_direction.php", {id:id}, function(data){
            $("select#direction").removeAttr("disabled");
            $("select#direction").html(data);
        });
    });
    }
});

任何帮助将不胜感激!

4

1 回答 1

0

好像你不想要ajax,如果另一个选择中有某个元素,你想使用javascript隐藏一个选择。然后根据需要使用您的 ajax 归档选择。这是http://jsfiddle.net/2FQwQ/的一个例子

<select id='direction'>
    <option value='train'>train</option>
    <option value='car'>car</option>
    <option value='pogo stick'>pogo stick</option>
<select>

<select id='agency'>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
<select>

<select id='route'>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
<select>

脚本

//SEts your html up to hide the secelt if train
function amITrain() { 
    if ($('#direction').val() === "train"){
        $('#route').hide();
        $('#route').attr('disabled');
     }else{
         $('#route').show();
         $('#route').removeAttr('disabled');
     }        
 }
 $('#direction').change(amITrain);


 //When you get the ajax back, you would fill the select like this, then call the function
 $('#direction').html("<option value='train'>train</option><option value='car'>car</option>     <option value='pogo stick'>pogo stick</option>");
 amITrain();
于 2012-11-28T20:05:30.370 回答