javascript - 更改任何选择框时启用按钮
问题描述
我在一个表单中有 12 个选择框和一个提交按钮。最初提交按钮被禁用。当用户更改至少一个选择框值时,应启用提交按钮。我尝试使用 onchagne 事件。但它失败了。在下面添加代码
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Form control: select</h2>
<p>The form below contains two dropdown menus (select lists):</p>
<form>
<div class="form-group">
<label for="sel1">Select list (select one):</label>
<select class="form-control" id="sel1">
<option value="0">choose</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br/>
<select class="form-control" id="sel12">
<option value="0">choose</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br/>
<select class="form-control" id="sel13">
<option value="0">choose</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br/>
<select class="form-control" id="sel14">
<option value="0">choose</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br/>
<select class="form-control" id="sel15">
<option value="0">choose</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br/>
<select class="form-control" id="sel16">
<option value="0">choose</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br>
</div>
<button type="submit" id="main" class="btn disabled btn-primary btn-default">Submit</button>
</form>
</div>
<script>
$('select').change(function () {
selectedOption = $('select').val();
if(selectedOption!="0"){
$('#main').removeClass("disabled");
}
else{
$('#main').addClass("disabled");
}
});
</script>
</body>
</html>
解决方案
在更改任何选择输入时首先检查所有选择值
$('select').change(function () {
let selectedOption = 0;
//check all the select values first
$('select').each((i,elm)=>{
if($(elm).val()!=0)
selectedOption = $(elm).val();
})
if(selectedOption!="0"){
$('#main').removeClass("disabled");
}
else{
$('#main').addClass("disabled");
}
});
推荐阅读
- amazon-web-services - 将数据从托管在一个账户中的 AWS EC2 windows 实例导出到 S3 到另一个账户
- rest - PowerShell 未正确调用 REST API
- php - 使用复选框过滤列并加入表 php mysqli
- ios - 位置访问权限警报未显示且 CLLocation 管理器委托方法未在 xcode 6.4 中调用。请指教
- c# - 如何在 Visual Studio 的菜单栏中更改行分隔符?
- linux - 如何使阅读速度更快(如何使用 grep 代替)
- java - 使用 JSOUP 从另一个网站获取数据
- c# - 等待作为参数传递给方法的类实例的结果
- javascript - 与使用 angular 生成动态表单相关的必要建议
- ms-word - 无法自动编号 word doc 中的数字