我有一个文本输入字段和一个复选框。当且仅当在文本字段中有输入时,必须禁用该复选框。我有一个适用于大多数情况的解决方案:
HTML:
<input type="text" id="search" />
<input type="checkbox" id="cb" />
<label for="cb">Enabled only if no search term</label>
jQuery:
$('#search').keyup(function (e) {
var enable = $(this).val() == 0;
if (enable) {
$('#cb').removeAttr('disabled');
} else {
$('#cb').attr('disabled', 'disabled');
}
});
在 jsFiddle 上看到它。
这适用于使用键盘键入或删除文本以及使用键盘粘贴文本时。
如果用户使用右键单击上下文菜单粘贴文本,或者用户按下 IE 添加到输入字段以允许清除输入字段的小“X”,则会失败。
问题
如何改进代码,使其也适用于这些场景?等待文本框失去焦点会提供较差的用户体验。