1

我需要创建一个包含许多选择标签的表单,并且在每个选择标签中都会打开另一个选择,并且在此选择另一个和另一个,另一个和另一个直到表单结束。

我现在有这个http://jsfiddle.net/8SZ5n/1/,但它不是通用的,我需要在每个选择中调用这个函数。

<script type="text/javascript">
$(function() {
    $('.select').change(function(){
        if ($(this).val() == "1") {
            $('.divR1').show();
            $('.divR2').hide();

        }else if($(this).val() == "2"){
            $('.divR2').show();
            $('.divR1').hide();
        }

        else {
            $('.divR1').hide();
            $('.divR2').hide();
        }
    });
});
</script>

<div id="div1">
    <select class="select" autocomplete="off">
        <option value="#" checked>Escolha</option>
        <option value="1">Sim</option>
        <option value="2">Não</option>
    </select>

    <div class="divR1" style="display:none">
        1
        <select autocomplete="off">
            <option value="#" checked>Escolha</option>
            <option value="1">Sim</option>
            <option value="2">Não</option>
        </select>   
    </div>

    <div class="divR2" style="display:none">
        2
        <select autocomplete="off">
            <option value="#" checked>Escolha</option>
            <option value="1"></option>
            <option value="2"></option>
        </select>
    </div>
</div>
4

3 回答 3

1
$( function() {
    $( ".select" ).change( function() {
       var id = $( this ).val();
       $( ".selectDiv" ).hide();
       $( ".divR" + id ).show();
    });
});

我在所有依赖的 div 中添加了“selectDiv”类;此外,“divR”应该是一个 ID 蚂蚁而不是一个类,如果它是唯一的;)

编辑jsFiddle

于 2013-11-14T15:13:13.370 回答
1

好吧,您没有明确定义表格的结尾,所以这是一个示例,它一直持续到您想要它为止:)

JSFiddle

$(function () {
    $('select').change(handler);
});

function handler() {
    var x = $(this);
    if (x.val() != '#') {
        var div = $('<div>').append(x.val());
        x.parent().append(div);
        var select = $('<select>')
            .attr('autocomplete', 'off')
            .change(handler)
            .append($('<option>').attr('value', '#').append('Escolha'))
            .append($('<option>').attr('value', '1').append('Sim'))
            .append($('<option>').attr('value', '2').append('Não'));
        div.append(select);
    } else {
        x.siblings().remove();
    }
}
于 2013-11-14T15:23:04.830 回答
1

http://jsfiddle.net/8SZ5n/5/

$(function () {
    $(".select").change(function () {
        var next = $('option', this).filter(':selected').attr('next');
        $($(this).attr('hide')).hide();
        if (next != undefined) {
            $(next).show();
        }
    });
});
于 2013-11-14T17:27:38.010 回答