Это потому, что if (password != confirmPassword)
является ложным, потому что оба в любом случае пусты, когда вы устанавливаете var password = $("#txtNewPassword").val();
и var confirmPassword = $("#txtConfirmPassword").val();
, они оба равны друг другу.Вы должны добавить возврат после того, как проверите, являются ли значения пустыми, поэтому, когда пользователь удаляет текст, он не будет ничего проверять ниже первого оператора проверки.
// первая проверка
if (password == "" && confirmPassword == ""){
return false;
}
... остаток кода