Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Editando a descrição de uma tarefa

Estou tentando melhorar um pouco o tratamento de exceções ao editar a descrição de uma tarefa. Quando o usuário tenta salvar a descrição vazia, exibi um alerta de que o novo nome da tarefa não pode estar vazio. Ao clicar no OK do alert o prompt fecha, obrigando o usuário a clicar em editar novamente. Teria alguma forma de voltar o foco para o prompt, mantendo ele aberto? Segue o trecho de código onde estou fazendo esse tratamento:

botao.onclick = () => {
        const novaDescricao = prompt("Qual é o novo nome da tarefa?");
        if (novaDescricao) {
            paragrafo.textContent = novaDescricao;
            tarefa.descricao = novaDescricao;
            atualizarTarefas();
        } else if (novaDescricao == '') {
            alert('Atenção. O novo nome da tarefa não pode estar vazio.');
        }
}
2 respostas
solução!

Oi, Denise, tudo bem?

Infelizmente, o comportamento padrão do método prompt é fechar quando o usuário clica em "OK", e não há uma maneira direta de mantê-lo aberto. No entanto, uma solução alternativa seria criar um loop que continue solicitando a descrição da tarefa até que o usuário insira um valor válido. Aqui está um exemplo de como você pode fazer isso:

botao.onclick = () => {
    let novaDescricao = '';
    while (!novaDescricao) {
        novaDescricao = prompt("Qual é o novo nome da tarefa?");
        if (!novaDescricao) {
            alert('Atenção. O novo nome da tarefa não pode estar vazio.');
        }
    }
    paragrafo.textContent = novaDescricao;
    tarefa.descricao = novaDescricao;
    atualizarTarefas();
}

Neste exemplo, atribuímos à variável novaDescricao uma string vazia. Em seguida começamos um laço de repetição usando while e como condição informamos o seguinte código !novaDescricao para especificar que enquanto a variável estiver vazia o prompt e um alerta informando que a ativdiade não pode estar vazia, devem continuar aparecendo. Caso contrário, o novo nome da atividade é atualizado na página.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Rodrigo, obrigada. Sua sugestão resolveu meu problema.