在不知道值的任何信息的情况下,选择值时切换元素
Toggle element when value is selected without know any information about value
我这里有一个问题,不知道正确的路径来获得这个工作。我有一个表,其中存储了一些值,当然我可以对任何记录执行CRUD操作。这些值用于动态地构建SELECT
元素。所有这些工作完美,但我需要切换一个元素的可见性,当特定的值被选中。例如:
<select class="change">
<option value="1">Value 1</option>
<option value="2">Value 2</option>
<option value="3">Value 3</option>
</select>
<input type="text" class="show" style="display:none" />
作为输入,默认情况下.show
是隐藏的,让我说,任何时候我选择"值2",它将显示,否则应该再次隐藏。我知道如何在jQuery中使用以下代码:
$(".change").on('change', function() {
option = $('.change :selected').val();
if (option == "Value 2") {
$(".show").show();
} else {
$(".show").hide();
}
});
但是如果有人编辑"值2"并将其更改为"值2"或"值2"或"Value2"会发生什么?代码将停止工作。在这种情况下,你做了什么来避免这种情况?
我可以附加到"ID",但再次发生了什么,如果任何删除记录与ID=2和ID=10重新创建以后?然后代码将再次停止工作。
我不知道该怎么做,有什么建议吗?想法吗?解决方法?
我猜你正在使用数据库中的数据构建下拉列表。我的建议是在您的表中添加一个新列。这一列将是一个简单的bool值,用于确定您的输入是否需要隐藏。
然后你有这个HTML代码(这里的新col是"showInput"):
<select class="js-dropdown">
<option value="foo" data-showInput="1">Foo</option>
<option value="bar" data-showInput="0">Bar</option>
<option value="foobar" data-showInput="1">Foobar</option>
</select>
<input type="text" class="js-input" />
这个JS代码:
var input = $(body).find('.js-input');
$('.js-dropdown').on('change', function() {
var option = $(this).find(':selected');
var showInput = parseInt(option.attr('data-showInput'));
if (showInput === 1) {
input.show();
} else {
input.hide();
}
});
相关文章:
- WebdriverIO waitForExist()选择元素's选定的选项
- 如何选择元素的第n个子元素
- Angular没有根据模型更新我的选择元素
- jquery使用name from变量按类选择元素
- 如何使用jQuery按数据日期属性选择元素
- 向html选择元素添加选项
- 使用Jquery在相同类型的元素中选择元素
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 如何在Angular中清除选择元素中的过滤器
- 使用其中一个元素作为参考点,从Javascript数组中选择元素
- Javascript选择元素到字符串的比较
- Angular始终选择选择元素中的第一个选项
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 通过 id json, jquery 选择元素
- 如何基于另一个已经存在的选择器选择元素
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- HTML 选择元素的只读等效项
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- 单击事件似乎不适用于 IE 中的选择元素
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载