javascript - 如何通过选择选项禁用/启用输入?
问题描述
当从下拉列表中选择某个选项时,我正在尝试启用输入
我写了解决这个问题的代码,但它不起作用。这是我的代码
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<body>
<select class="form-control" id="dropDown">
<option id="n" value="0"> Тип N </option>
<option id="p" value="1"> Тип P </option>
<option id="c" value="2"> Тип C </option>
<option id="v" value="3"> Тип V </option>
<option id="t" value="4"> Тип T </option>
<option id="s" value="5"> Тип S </option>
</select>
<div>
<label class="control-label">
<span th:text="#{size}"></span>
</label>
<input id="size" type="text" class="form-control" />
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script th:inline="javascript">
$('#dropdown').change(function() {
if( $(this).val() === 1) {
$('#size').props( 'disabled', false );
} else {
$('#size').props( 'disabled', true );
}
});
</script>
</body>
</html>
所以我希望当我选择“Тип P”选项时,输入(id =“size”)应该被启用,如果选择了其他选项,它应该保持禁用状态
解决方案
===
是严格的相等运算符,它同时检查value和type,并且由于元素的值始终是字符串,因此将其与数字进行比较总是会失败。
请注意:您也有错字props
,应该是prop
。控件 ( ) 和代码 ( ) 中使用的属性id不匹配。dropDown
dropdown
改变
if( $(this).val() === 1) {
到
if( $(this).val() === "1") {
推荐阅读
- vb.net - 通过 UNC 路径打开 VS 2010 Basic express 时出现构建错误
- javascript - 使用 node.js 如何重命名文件夹中的所有文件
- sql-server - 保持 SQL Server 数据库和 Elasticsearch 索引同步
- javascript - 如何在本机反应中禁用数组响应值上的按钮
- sql - 嗨,我正在尝试 CASE WHEN,但它不适用于以下情况。它在执行时返回相同的语句
- android - 对推送通知做出反应原生 Firebase 句柄点击动作
- shell - 使用字符和数值从文件中排序和删除重复项
- postgresql - Jfrog Artifactory 与 postgresql 的集成
- react-native - 如何在 react-native 中的 touchableOpacity 上设置星号和取消星号
- javascript - 无法将 Redux 商店连接到 React Typescript App