Как снять флажок, когда пользователь удаляет текст в текстовом поле? - PullRequest
0 голосов
/ 27 июля 2011

Привет У меня есть следующий код, чтобы установить флажок, когда пользователь нажимает любую клавишу.Однако мое требование состоит в том, чтобы снять флажок, когда пользователь удаляет текст, введенный им в текстовое поле.Подскажите пожалуйста как мне это сделать?

<input type="text" id="search" name="mysearch" 
onkeypress="enableCheckBox('search')"/>
<input type="checkBox" id="search_cb"
name="search_cb"/>

function enableCheckBox(id) {
        var myCheckbox = document.getElementById(id + "_cb");
        if(!myCheckbox.checked) {
            myCheckbox.checked = true;
        }
    }

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

Вы можете попробовать изменить свой обработчик, чтобы проверить, есть ли в текстовом вводе какой-либо текст.

function enableCheckBox(id) {
    var hasText = document.getElementById(id).value.length > 0;
    document.getElementById(id + "_cb").checked = hasText;
}
0 голосов
/ 27 июля 2011
function enableCheckBox(id) {
    var myCheckbox = document.getElementById(id + "_cb");
    if(!myCheckbox.checked && document.getElementById(id).value) {
        myCheckbox.checked = true;
    }else
        myCheckbox.checked = false;
}

Возможно, вы также захотите переименовать функцию, поскольку она будет проверять себя, если что-то напечатано, но снимите флажок, если ввод пуст.

...