根据下拉列表填充和禁用文本字段
populate and disable text field depending on dropdown
遗憾的是,我对javascript/jQuery不太熟悉。我有一张带有下拉列表的表格。我需要做的是根据下拉列表的选择来填充一个文本字段。下拉列表的第一个声音是"其他",所以文本字段必须是可写的,然后从第二个开始,我想自动分配一个值并禁用文本字段。
下拉列表的值将保存在数据库中,因此它必须保留选项的名称。
我在谷歌上找到了几个解决方案,但没有一个符合我的需求。。。希望有人能帮助我。
要创建您想要的功能,您需要学习一些基本的东西。
jQuery选择器
首先,如果您还不熟悉jQuery的选择器语法,请在这里了解它。
.change()事件
接下来,您需要了解如何绑定到下拉菜单的.change
事件。一种方法是$('#dropdownId').change(function() { ... });
,它只是$('#dropdownId').on('change', function() { ... });
的快捷方式。在回调函数中,您可以使用this
访问下拉列表元素,从而使用$(this)
访问jQuery对象。
然后,我们可以用$(this).val()获取下拉列表的值,并使用一些基本逻辑来启用/禁用文本框并设置其值。
启用/禁用文本框
为了启用/禁用文本框,您可以使用:$('#txt').removeAttr('disabled');and
$('#txt').attr('disabled','true');`分别地
示例
我在一个示例fiddle中为您组合了所有这些,向您展示如何在这个jsFiddle中将它们组合在一起。如果您对它的工作原理有任何疑问,请告诉我:)
这是给你的小提琴。。。
http://jsfiddle.net/G3V3v
HTML:
<select id="ddl">
<option value="0">[ Other ]</option>
<option value="1">First</option>
<option value="2">Second</option>
</select>
<input id="txt" />
jQuery:
$('#ddl').change(function() {
if ($(this).val() == 0) {
$('#txt').val('').removeAttr("disabled").focus();
} else {
$('#txt').val($(this).children('option:selected').text());
$('#txt').attr("disabled", "disabled");
}
});
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 使用jquery将输入字段转换为文本
- 如何从查询字符串中的输入字段发回文本
- 表单输入字段随着溢出的文本而增长
- 使用单个文本框向多个字段添加严格搜索
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- 使用jQuery的输入字段文本换行
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 如何根据文本长度立即显示和隐藏字段?-JQuery
- 如何使文本、数字和日期html输入字段以一致的方式支持Ctrl+Z(撤消)
- 模拟文本输入字段上的退格键
- 输入字段中的可持续文本
- 未获取文本输入字段的值
- 没有文本安全性的密码字段
- 将禁用的输出字段更改为带前缀的文本
- 为什么 react 将输入[类型=“文本”] 字段设为只读,除非我提供 onChange 回调
- 使用SAPUI5中的“文本”字段显示正确的“日期”
- Kendo,如何将MVVM文本:字段绑定到远程DataSource