我有一個文本輸入字段和一個複選框。當且僅當在文本字段中輸入時,該複選框必須被禁用。我有一個偉大工程大多數情況下的解決方案:通過鼠標操作更改瀏覽器文本輸入時的響應
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');
}
});
看到它live on jsFiddle。
這適用於使用鍵盤輸入或刪除文本以及使用鍵盤粘貼文本的情況。
如果用戶使用右鍵單擊上下文菜單粘貼文本,或者用戶按下IE添加到輸入字段以允許清除輸入字段的小「X」,則會失敗。
問題
我怎樣才能提高代碼,以便它也能在這些情況?等待文本框失去焦點將提供較差的用戶體驗。
你可以使用[這裏]的Jquery Realtime驗證插件(http://www.zurb.com/playground/jquery-text-change-custom-event) – 2013-03-11 20:16:29
@Cthulhu:看起來非常酷。去嘗試一下。 – 2013-03-11 20:27:26
@Cthulhu:像魅力一樣工作!如果你想把你的評論變成一個答案(這不僅僅是一個鏈接),我會很高興接受它。 – 2013-03-11 20:47:09