Necesito hacer un tipo test en Html5 en el cual, después de poner las opciones en la casilla pueda dar al botón de validar y que aparezca una (X) si es incorrecta la opción o una (V) si es correcta al lado de la opción; es decir, que cada opción corresponda con una sola respuesta correcta. Y así es donde me he atorado, ya que tengo un script muy útil, pero no sé cómo implementar la validación, o sea; comprobar que cada opción está donde debería de estar.
Espero su ayuda, ya que no soy programador, pero me urge hacer este test para un proyecto.
Saludos
Código CSS :
.div_swap { width:150px; height:30px; padding:10px; border:1px solid #aaaaaa; } .sch { }
Código Javascript :
function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("src", ev.target.id); } function drop(ev) { ev.preventDefault(); var src = document.getElementById(ev.dataTransfer.getData("src")); var srcParent = src.parentNode; var tgt = ev.currentTarget.firstElementChild; ev.currentTarget.replaceChild(src, tgt); srcParent.appendChild(tgt); } function submitNewRoles() { var x = document.getElementsByClassName("sch"); var str =""; for (var i = 0; i < x.length; i++) { str += x[i].innerHTML; if (i< x.length -1) str +=", "; } var y = document.getElementById("GrantRoles"); y.innerHTML = str; } function submitNewRoles2() { var x = $( "#second" ).find(".sch"); var str =""; for (var i = 0; i < x.length; i++) { str += x[i].innerHTML; if (i< x.length -1) str +=", "; } var y = document.getElementById("GrantRoles"); y.innerHTML = str; } function myFunction() { var y = document.getElementById("GrantRoles"); } $('#formAssignRoles :input').keypress(function(e){ alert("Arrastra y suelta en la casilla correspondiente"); //$(this).pop(); return false; }); $('#formAssignRoles :input').bind('copy paste',function(e){ alert("Arrastra y suelta en la casilla correspondiente"); e.preventDefault(); });
Código HTML :
<div id="GrantRoles" ></div> <form id="formAssignRoles" onsubmit="myFunction()"> <div id="second"> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"> Opción 1 <input id="drag1" class="div_swap" draggable="true" ondragstart="drag(event)" required> </input> </div> <br> <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"> Opción 2 <input id="drag2" class="div_swap" draggable="true" ondragstart="drag(event)" required> </input> </div> <br> <div id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"> Opción 3 <input id="drag3" class="div_swap" draggable="true" ondragstart="drag(event)" required> </input> </div> </div> <br><br> <input type="submit" onclick="submitNewRoles2()" value="Revisar"> </form> <h3>Elige una respuesta y arrastrala a la casilla correcta</h3> <div id="div4" ondrop="drop(event)" ondragover="allowDrop(event)"> <div id="drag4" class="div_swap" draggable="true" ondragstart="drag(event)"> <span id="sch_4" class="sch" >Op. correcta 1</span> </div> </div> <div id="div5" ondrop="drop(event)" ondragover="allowDrop(event)"> <div id="drag5" class="div_swap" draggable="true" ondragstart="drag(event)"> <span id="sch_5" class="sch" >Op. correcta 2</span> </div> </div> <div id="div6" ondrop="drop(event)" ondragover="allowDrop(event)"> <div id="drag6" class="div_swap" draggable="true" ondragstart="drag(event)"> <span id="sch_6" class="sch" >Op. correcta 3</span> </div> </div>