javascript - 如何使用动态选择禁用输入字段?
问题描述
我想创建一个动态选择元素,如果我选择某个选项并且禁用特定的文本输入字段。
这是我的 HTML:
<div class="form-group col-md-2">
<label for="">Tipo de Compra</label>
<select name="" class="form-control" id="tipoCompra" required>
<option value="">Tipo de compra </option>
<option value="Nacional">Nacional</option>
<option value="Exterior">Exterior</option>
</select>
</div>
如果用户选择“Nacional”选项,我想禁用以下输入字段,以便他们无法输入任何值。
<div class="form-group col-md-2">
<label for="fob">Costo Fob</label>
<input type="number" step="00.01" id="fob" name="fob" disabled="false" class="form-control" onchange="Todas();" onkeyup="Todas();" required>
</div>
我正在为我的函数和一些 Jquery 使用 JavaScript,但我不知道如何为此创建函数。
这是我的功能:
function TipoCompra(){
var tipoCompra = document.getElementById('tipoCompra').value;
console.log(tipoCompra);
var fob = document.getElementById('fob');
if (tipoCompra == 'Nacional'){
fob.disable = true;
} else {
fob.disable = false;
}
}
但我不知道如何更改禁用的属性。
解决方案
您需要使用 jQuery 的更改功能检查您的选择的更改
https://api.jquery.com/change/
并检查您选择的值。
然后使用 prop 功能禁用您的元素。
$('#fob').prop('disabled', true);
$("select[name='test']").change(function() {
let selectVal = $(this).val();
if (selectVal == 'Nacional') {
$('#fob').prop('disabled', false);
} else {
$('#fob').prop('disabled', true);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group col-md-2">
<label for="">Tipo de Compra</label>
<select name="test" class="form-control" required>
<option value="">Tipo de compra </option>
<option value="Nacional">Nacional</option>
<option value="Exterior">Exterior</option>
</select>
</div>
<div class="form-group col-md-2 costo">
<label for="fob">Costo Fob</label>
<input type="number" step="00.01" id="fob" name="fob" class="form-control" onchange="Todas();" onkeyup="Todas();" required>
</div>
推荐阅读
- javascript - 加载 React 应用程序时如何设置 firebase auth onAuthStateChanged() 监听器运行?
- xml - XSLT 正在为每一行创建单独的表。我如何把它们变成一张桌子?
- ios - NSTextAttachment() 额外属性
- sql - PostgreSQL - 生成每小时列表
- macos - Embedded Postgres 在 Mac OS 上无法获取进程 PID
- ruby - 如何解决 Rubocop 错误 'Favor `format` over `String#%`'
- php - Phpunit coverage-text 未显示所有测试的类文件
- apache-kafka-streams - Kafka Streams 使用的 RocksDB 文件名含义
- r - 用于匹配gnu r中的括号对的递归正则表达式
- c# - C#如何检测客户端套接字是否需要验证ssl