0

当我从下拉列表中选择“其他”时,我试图显示一个文本字段。它工作正常,但仅在第一个实例上。我需要它在每页多次工作。我试过 .each(), .foreach() 但似乎找不到合适的地方。如何让它在多个下拉列表中运行

JS:

    $(window).load(function(){
    $('#myselect').change(function() {
        if($(this).val() == 2)
            $('#txtData').show();
        else
            $('#txtData').hide();
    });
    }

)

HTML:

<select id="myselect">



    <option value="" selected="selected">-Select One-</option>

    <option value="No">No</option>
     <option value="2">Yes</option>

</select>
<br />
<input type="text" id="txtData" placeholder="Please Specify..." class="other" style="display:none;"  />
4

2 回答 2

0

我不确定您要做什么,但看看这是否对您有帮助:

jsfiddle 演示更改()

我实际上将您的代码切换为使用class而不是ID's,并为每个选择框创建了几个输入文本。

否则请尝试更具体。

代码

$('.other').hide();

$('.sectos').change(function() {
    if($(this).val() == 3){
       $(this).next('input').fadeIn(); 
    }
    else{
       $(this).next('input').fadeOut();        
    }
});
于 2013-07-23T21:57:54.613 回答
-1

这是我的第一个答案!

一种方法是为每个输入“组”设置一个单独的函数,但我假设你不想这样做......

我将其中两个选择/输入对包装到字段集中,如下所示:

<fieldset>
    <select id="myselect">
        <option value="" selected="selected">-Select One-</option>
        <option value="No">No</option>
        <option value="2">Yes</option>
    </select>
    <br />
    <input type="text" id="txtData" placeholder="Please Specify..." class="other" style="display:none;"  />
</fieldset>
<fieldset>
    <select id="myselect2">
        <option value="" selected="selected">-Select One-</option>
        <option value="No">No</option>
        <option value="2">Yes</option>
    </select>
    <br />
    <input type="text" id="txtData2" placeholder="Please Specify..." class="other" style="display:none;"  />
</fieldset>

JS:

$(document).ready(function(){
    $("fieldset").each(function(){
        $(this).change(function(){
            if($(this).children("select").val() == 2){
                $(this).children("input").show();
            }
            else {
                $(this).children("input").hide();
            }
        });
    });
});

这样,您现在就有了每组输入的父元素。您可以使用 div 或其他任何您想使用的东西来实现类似的效果。

希望这可以帮助!

于 2013-07-23T21:57:43.843 回答