如果输入文本不为空,我想禁用复选框,如果输入文本为空,我想启用相同的复选框。当输入文本不为空时,禁用部分工作,但当输入文本被清除时,启用部分不工作。
$('#userId').on('change paste keyup', function () {
if ($(this).val() !=='') {
$("#vendorId").prop("disabled", true);
}else{
$("#vendorId").prop("disabled", false);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class="form-control" id="userId" placeholder="user's name">
<div>
<label>
<input type="checkbox" class="checkbox" id="vendorId" value="vendor">
Vendors
</label>
</div>
1条答案
按热度按时间odopli941#
您的代码似乎是正确的,它在代码片段演示中工作。它应该在输入字段不为空时禁用复选框,并在输入字段为空时启用它。
清除输入文本时启用部分不起作用的一个可能原因是,可能有另一个事件侦听器阻止启用复选框。您可以尝试添加控制台。日志语句调试代码并检查事件侦听器是否按预期工作。
您还可以尝试通过直接使用
prop()
方法而不使用if-else语句来简化代码。