javascript - 具有相同值的多个选择执行此操作
问题描述
我在表中有相同值的不同选择选项。当所有选择都获得相同的值(“2”)时,我如何做到这一点(将禁用的属性添加到输入)?
<table>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
</table>
<input type="checkbox" class="checkbox" id="x">
解决方案
您可以按以下方式进行操作:将每个选择的值推送到数组中,并用于unique()
仅保留唯一值。如果要在选择的值相同(1 或 2)的情况下禁用输入,请在此数组的长度为 1 时禁用输入。
$("select").on("change", function() {
let a = [];
$("select").each(function() {
a.push($(this).val());
$.unique(a);
});
if (a.length === 1) {
$(".checkbox").attr("disabled", true);
}
else {
$(".checkbox").removeAttr("disabled");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
</table>
<input type="checkbox" class="checkbox" id="x">
如果您只想在所有选择的值为 2 时禁用输入,您可以执行以下操作:
$("select").on("change", function() {
let a = [];
$("select").each(function() {
a.push($(this).val());
$.unique(a);
});
if (a.length === 1 && $.inArray("2", a !== -1)) {
$(".checkbox").attr("disabled", true);
}
else {
$(".checkbox").removeAttr("disabled");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
<td>
<select class="class1">
<option value="1">SI</option>
<option value="2">NO</option>
</select>
</td>
</table>
<input type="checkbox" class="checkbox" id="x">
推荐阅读
- c - 我想向数字数组添加一个常数,但在 C 中有所不同
- swift - 在快速登录中正确使用 DispatchQueue
- python - 检查列表是否包含 1、2 或 3
- python - 导入 tflearn 遇到问题
- javascript - 如何在 jQuery 中选择正确的获取元素
- blazor - 使用通用方式解析枚举
- url - 使用 id 创建链接: href ="{{ url_for('users/%s'%user[0]) }}" /pb 使用端点并构建 url (jinja/python/flask)
- azure - 什么 Azure CLI api 对应于 terraform azure 提供程序的资源 azurerm_app_service_certificate?
- html - 尝试在 H1 MY TODO LIST 下方添加边框底部
- ios - 在 Xcode 的项目中面临有关 SwiftSocket 库版本的问题。如何缓解问题?