根据多个下拉框中的选择显示/隐藏文本框
我有一个表格,其中一列下拉菜单的值为1 -5。当用户在任何一个框中选择一个小于三的值时,我想要一个弹出框出现在表下。对于任何数量小于3的下拉菜单,弹出窗口只需出现一次,而对于小于3的每个数值都不会出现一次。代码在分配<select id='purpose'>
时起作用,但仅适用于第一个<select>
。我如何让它们适用于所有人?使用根据多个下拉框中的选择显示/隐藏文本框
此功能:
$(document).ready(function(){
$('#purpose').on('change', function() {
if (this.value < 3)
{
$("#business").show();
}
else
{
$("#business").hide();
}
});
});
片段的HTML:
<td>
<select id='purpose'>
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
<td>
<select id='purpose'>
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
...
</table>
<div style='display:none;' id='business'>
<input type='text' class='text' name='business' placeholder="You gave a rating of less than 3 in one or more categories. Please provide a brief explination as to why." />
<br/>
</div>
每个select
元件应该被分配给到相同class
而不是同一id
。然后,逻辑可以应用于所有类。
<td>
<select class="purpose">
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
<td>
<select class="purpose">
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
和适当的选择是:
$(document).ready(function(){
$('.purpose').on('change', function() {
if (this.value < 3) {
$("#business").show();
} else {
$("#business").hide();
}
});
});
首先你应删除重复的ID。
对于任何数量小于3的下拉菜单,弹出窗口只需要出现一次,对于小于3的每一个数值都不会出现一次。代码在我分配时工作,但它只能在第一个。我如何让它们适用于所有人?
If you want the change event for work on both the both select you
can just attach on select element. This will trigger the code for all
select elements as below.
$(document).ready(function(){
$('select').on('change', function() {
if (this.value < 3)
{
$("#business").show();
}
else
{
$("#business").hide();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td>
<select >
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
<td>
<select>
<option value="" selected="selected">Select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
...
</table>
<div style='display:none;' id='business'>
<input type='text' class='text' name='business' placeholder="You gave a rating of less than 3 in one or more categories. Please provide a brief explination as to why." />
<br/>
</div>
太棒了!这几乎是100%的工作。当我将一个值设置为小于3时,框会弹出它应该的样子。但是,当我选择一个不同的盒子大于三个盒子时,盒子就会消失,而它不应该。 – cparks10
是的,你需要处理在这个处理程序..你可以很容易做到..只需检查其他框值,并执行逻辑 –
两个独立的元件不能/不应该有相同的ID。类可以重复,但ID不应该,特别是当它们用于Javascript目的时。您将不得不提供第二个'
你不能有两个元素具有相同的'ID' – Farnabaz
为什么你使用相同的ID都选择? –