Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/03/2012, 23:35
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Numeros Unicos

Podés hacer algo asi

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  5. <title>Verificar números repetidos</title>
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8. /* estilos */
  9. select{
  10. width: 80px;
  11. }
  12. /*]]>*/
  13. <script type="text/javascript">
  14. //<![CDATA[
  15. /* script */
  16. function comparar(){
  17. var u = document.getElementById('uno').value;
  18. var d = document.getElementById('dos').value;
  19. var t = document.getElementById('tres').value;
  20. var c = document.getElementById('cuatro').value;
  21. var cadena = u+d+t+c;
  22. alert(cadena); // para verificar
  23.  
  24.     for(i=1; i <=4; i++){
  25.     var re = new RegExp(i);
  26.     var resultado= re.test(cadena);
  27.     alert(re); // para verificar
  28.     alert(resultado); // para verificar
  29.         if(resultado == false){
  30.         alert('ha omitido o repetido un valor');
  31.         return false;
  32.         }
  33.     }
  34. alert('Todo ok. proceso el form'); // para verificar
  35. }
  36. //]]>
  37. </head>
  38. <div>
  39. <form action="#" method="post" onsubmit="return comparar();">
  40. <div>
  41. <select id="uno" name="uno" multiple="multiple" size="6">
  42. <option value="1">1</option>
  43. <option value="2">2</option>
  44. <option value="3">3</option>
  45. <option value="4">4</option>
  46.  
  47. <select id="dos" name="dos" multiple="multiple" size="6">
  48. <option value="1">1</option>
  49. <option value="2">2</option>
  50. <option value="3">3</option>
  51. <option value="4">4</option>
  52.  
  53. <select id="tres" name="tres" multiple="multiple" size="6">
  54. <option value="1">1</option>
  55. <option value="2">2</option>
  56. <option value="3">3</option>
  57. <option value="4">4</option>
  58.  
  59. <select id="cuatro" name="cuatro" multiple="multiple" size="6">
  60. <option value="1">1</option>
  61. <option value="2">2</option>
  62. <option value="3">3</option>
  63. <option value="4">4</option>
  64.  
  65. <br /><br />
  66. <input type="submit" value="procesar"/>
  67. </div>
  68. </form>
  69. </div>
  70. </body>
  71. </html>

Al hacerlo con números se simplifica.
Algunos alert() están solo para verificar el funcionamiento. La idea es construir una cadena con los valores seleccionados, y contra esta hacer un test con una expresión regular. Por lógica, para que no se repitan los números tu numero tiene que contener los cuatro números, el pattern de la expresión regular se genera dinamicamente en el for usando los valores de i (de 1 a 4), con cualquier false para resultados, la ejecución se detiene.
Lo que me deja dudas es que hacés si no seleccionan nada en uno de los selects, yo la armé para que sea obligatorio. Pero eso depende de como y para que vayas a usar el form.
Probada en IE8+, FF, Chrome, opera, Safari
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.