Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 带有隐藏文本字段的Mulitlpe下拉列表_Jquery_Multiple Instances_Each - Fatal编程技术网

Jquery 带有隐藏文本字段的Mulitlpe下拉列表

Jquery 带有隐藏文本字段的Mulitlpe下拉列表,jquery,multiple-instances,each,Jquery,Multiple Instances,Each,当我从下拉列表中选择“其他”时,我试图显示一个文本字段。它很好用,但只在第一次使用时有效。我需要它在每页的多个场合工作。 我试过了。每一个。每一个,但似乎找不到合适的地方。 如何让它在多个下拉菜单上运行 JS: HTML: 这是我的第一个答案 一种方法是为每组输入设置一个单独的函数,但我假设您不想这样做 我将其中两个选择/输入对包装到字段集中,如下所示: <fieldset> <select id="myselect"> <option va

当我从下拉列表中选择“其他”时,我试图显示一个文本字段。它很好用,但只在第一次使用时有效。我需要它在每页的多个场合工作。 我试过了。每一个。每一个,但似乎找不到合适的地方。 如何让它在多个下拉菜单上运行

JS:

HTML:


这是我的第一个答案

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

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

<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>
通过这种方式,现在每个输入组都有一个父元素。您可以使用div或任何其他想要使用的工具来实现类似的效果


希望这有帮助

我不确定你想做什么,但看看是否 帮助您:

实际上,我将您的代码改为使用class而不是ID,并为每个selectbox创建了几个输入文本

否则请尝试更具体一些

代码:


所有实例是否都具有相同的ID?ID必须是唯一的。使用一个类,这样您就可以通过一个操作隐藏和显示所有ID。ID在整个页面中都应该是唯一的,jQuery假设是这样的,所以它只返回一个结果,第一个。您可以使用。下一个“输入”如果这些分组之间有其他不相关的输入怎么办?我同意他对上下文有点不清楚。根据他所描述的,如果是一个大词,他只是试图给用户一个输入选项来描述其他词,在构建时,他应该在相关输入旁边找到他甚至可以使用的。下一个'id或.class'更可靠。我同意。他应该给他的输入一个与选择相关的特定类。这正是我想要做的。非常感谢你,玩得开心,如果你不明白你做了什么,请毫不犹豫地问。
<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>
    <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>
$(document).ready(function(){
    $("fieldset").each(function(){
        $(this).change(function(){
            if($(this).children("select").val() == 2){
                $(this).children("input").show();
            }
            else {
                $(this).children("input").hide();
            }
        });
    });
});
$('.other').hide();

$('.sectos').change(function() {
    if($(this).val() == 3){
       $(this).next('input').fadeIn(); 
    }
    else{
       $(this).next('input').fadeOut();        
    }
});