У меня есть два поля ввода, которые нужно заполнить только одним из них, а другое - тусклым.
Моя проблема в том, что я успешно заполнил поле ввода A, а поле ввода B было затемнено, но после того, как я очистил поле ввода A, поле ввода B по-прежнему затемнено.
Это мой код.
$('#myCodeA').textbox( {
onChange : function(value){
if (value !== 'NULL'){
$('#myCodeB').textbox({'disabled':true});
}else{
$('#myCodeB').textbox({'disabled':false});
}
}
});
$('#myCodeB').textbox( {
onChange : function(value){
if (value !== 'NULL'){
$('#myCodeA').textbox({'disabled':true});
}else{
$('#myCodeA').textbox({'disabled':false});
}
}
});
Я ожидаю, что когда поле ввода A будет очищено, поле ввода B не будет затемнено, но останется затемненным
Извините за мой английский :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте событие keyup() Jquery вместо onChange()
$("#myCodeA").keyup(function () {
if ($(this).val().length > 0) {
$("#myCodeB").prop("disabled", true);
} else {
$("#myCodeB").prop("disabled", false);
}
});
$("#myCodeB").keyup(function () {
if ($(this).val().length > 0) {
$("#myCodeA").prop("disabled", true);
} else {
$("#myCodeA").prop("disabled", false);
}
});