Ordenar lista.

1. Ordenar lista.

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 29/01/2018 - 19:10h

Saudações.

Tenho um script que gera questões objetivas, clicando em um botão, ele cria um campo para digitar a pergunta e um botão para adicionar alternativas uma a uma, com suas respectivas letras. Além disso, gera um botão para apagar uma alternativa, caso erre. Pois bem, quando deletar uma alternativa, preciso que haja uma ordenação, por exemplo, se deletar a alternativa 'b', a 'c' vira 'b' e a 'd' vira 'c'. Essas letras são colocadas em um input com edição bloqueada. Segue o código:


var qtdCampo1 = 0;
var qtdCampo2 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
function geraObjetiva(){ //gera avaliação objetiva
var objPai = document.getElementById("campoPai1");
var objFilho = document.createElement("div");
objFilho.setAttribute("id","filho"+qtdCampo1);
objPai.appendChild(objFilho);
//escreve as questões e alternativas na página.
document.getElementById("filho"+qtdCampo1).innerHTML = "<table width=100%><tr><td colspan='3'><textarea style='width:100%; resize:none' pattern='[a-zA-Z0-9á-úÁ-Úà-ùÀ-Ùâ-ûÂ-Ûã-õÃ-ÕçÇ.,:;?-_/\ ]+' required title='Pergunta' placeholder='Digite a pergunta.' rows='2' name='pergunta[]'></textarea></td></tr><tr><td><input type='button' class='botao2' onclick='removeCampo("+objPai.id+","+objFilho.id+")' value='Remover'></td></tr><tr><td colspan='3' width=95%>Insira uma imagem à questão:<br><input type='file' name='image1[]' id='img1"+qtdCampo1+"' onchange='validaExtensao(this.id)'></td></tr><td><br></td><tr></tr><tr><td colspan='3'><div id='campoAlt"+qtdCampo1+"'></div></td></tr><tr><td><input type='button' value='Adicionar alternativa' style='width:120;height:25' onclick='addAlt("+"campoAlt"+""+qtdCampo1+","+qtdCampo1+");'/></td></tr><tr><td></td></td><td>Resposta:&nbsp<input id='patt"+qtdCampo1+"' required title='Resposta' type='text' style='width:20px; text-align: center;' maxlength='1' name='resposta[]' size=2/></td><td>Valor da questão:&nbsp<input pattern='[0-9.]+' required title='Valor da questão' type='text' style='width:20px; text-align: center;' name='valor1[]' size=2/></td></tr><tr><td><br></td></tr></table>";
qtdCampo1++;
}

function addAlt(id,i){
var letra = String.fromCharCode(97+qtdCampo2[i]);
var objPai = id;
var objFilho = document.createElement("div");
objFilho.setAttribute("id","alt"+i+qtdCampo2[i]);
objPai.appendChild(objFilho);
//escreve as alternativas.
document.getElementById("alt"+i+qtdCampo2[i]).innerHTML = "<table width='100%'><tr><td align=center><input id='letra"+objFilho.id+"' type='text' style='width:15px; text-align:center;' name='letra"+i+"[]' value="+letra+" size=1 readonly></td><td><textarea style='width:100%; resize:none' pattern='[a-zA-Z0-9á-úÁ-Úà-ùÀ-Ùâ-ûÂ-Ûã-õÃ-ÕçÇ.,:;?-_/\ ]+' required title='Alternativa' placeholder='Digite uma alternativa.' rows='2' name='alternativas"+i+"[]'></textarea></td><td><img src='img/lixeira.png' width='32px' style='cursor:pointer' onclick='ordenaAlt("+qtdCampo2[i]+","+objPai.id+","+i+"); removeCampo("+objPai.id+","+objFilho.id+")'></img></td></tr></table>";
qtdCampo2[i]++;
document.getElementById("patt"+i).setAttribute("pattern","[a-"+letra+"]+");
}