[英]How to disable HTML elements if <option> is set to false?
I have this form:我有这个表格:
<form id="ConfigurazioneForm" method="post">
<div class="form-group row">
<div class="col-sm-1"></div>
<label for="abilitato" class="col-sm-2 col-form-label">Abilita</label>
<div class="col-sm-6">
<select class="form-control" id="abilitato" required>
<option value="true">true</option>
<option value="false">false</option>
</select>
</div>
<div class="col-sm-3"></div>
</div>
<div class="form-group row">
<div class="col-sm-1"></div>
<label for="mostranome" class="col-sm-2 col-form-label">Mostra il nome: </label>
<div class="col-sm-6">
<select class="form-control" id="mostranome" required>
<option value="true">true</option>
<option value="false">false</option>
</select>
</div>
<div class="col-sm-3"></div>
</div>
</form>
How do I disable select "mostranome" whenever select "abilitato" is set to false?每当 select “abilitato” 设置为 false 时,如何禁用 select “mostranome”? I tried in JQuery something like:
我在 JQuery 试过类似的东西:
$(document).ready(function (){
if($("#abilitato").val()===false){
$("#mostranome").prop('disabled',true);
}
})
But it doesn't get triggered, thank you for your time.但它不会被触发,谢谢你的时间。
$("#abilitato").val()
gives string not boolean value 'true / false'. $("#abilitato").val()
给字符串不是 boolean 值 'true / false'。 So why your compare fail.那么为什么你的比较失败了。
Compare with ""
as a string and it's work.与
""
作为字符串进行比较,它是有效的。
$(document).ready(function() { if ($("#abilitato").val() === "false") { $("#mostranome").prop('disabled', true); } $("#abilitato").change(function() { if ($("#abilitato").val() === "true") { $("#mostranome").prop('disabled', false); } else $("#mostranome").prop('disabled', true); }); })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="ConfigurazioneForm" method="post"> <div class="form-group row"> <div class="col-sm-1"></div> <label for="abilitato" class="col-sm-2 col-form-label">Abilita</label> <div class="col-sm-6"> <select class="form-control" id="abilitato" required> <option value="false">false</option> <option value="true">true</option> </select> </div> <div class="col-sm-3"></div> </div> <div class="form-group row"> <div class="col-sm-1"></div> <label for="mostranome" class="col-sm-2 col-form-label">Mostra il nome: </label> <div class="col-sm-6"> <select class="form-control" id="mostranome" required> <option value="true">true</option> <option value="false">false</option> </select> </div> <div class="col-sm-3"></div> </div> </form>
Here is the way you can do it:这是您可以做到的方法:
const abilitato = document.getElementById("abilitato"); const mostranome = document.getElementById("mostranome"); abilitato.addEventListener("change", (e) => { mostranome.disabled = e.target.value === "false"; });
<.DOCTYPE html> <html> <head> <title>JS sandbox</title> <meta charset="UTF-8" /> <link rel="stylesheet" href="src/styles:css" /> </head> <body> <div id="app"> <form id="ConfigurazioneForm" method="post"> <div class="form-group row"> <div class="col-sm-1"></div> <label for="abilitato" class="col-sm-2 col-form-label">Abilita</label> <div class="col-sm-6"> <select class="form-control" id="abilitato" required> <option value="true">true</option> <option value="false">false</option> </select> </div> <div class="col-sm-3"></div> </div> <div class="form-group row"> <div class="col-sm-1"></div> <label for="mostranome" class="col-sm-2 col-form-label" >Mostra il nome. </label> <div class="col-sm-6"> <select class="form-control" id="mostranome" required> <option value="true">true</option> <option value="false">false</option> </select> </div> <div class="col-sm-3"></div> </div> </form> </div> <script src="src/index.js"></script> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.