JavaScript/Casos concretos de formularios

JavaScript
Casos concretos de formularios


Restricións de completado de campos

editar

Se se quere evitar mediante JavaScript que se envíe un formulario se antes non se engadiu contido a un dos seus campos, pode facerse do seguinte xeito:

<!-- [...] -->

<script type="text/javascript" language="javascript">
  function ComprobarOsCampos(formulario)
  {
    if (formulario.correo.value == "") // Se o campo do correo está baleiro.
    {
      alert("Ten que escribir o seu correo electrónico.");
      formulario.correo.focus(); // Enfócase o campo do correo.
      return(false); // Devólvese «false» para evitar que se envíen os datos do formulario.
    }
    else return(true); // Se o campo ten contido, envíanse os datos do formulario.
  }
</script>

<!-- [...] -->

<form name="formulario" onsubmit="return ComprobarOsCampos(formulario)" action="guión.php" method="post" >
  <!-- Campos: -->
  Nome: <input type="text" name="nome" id="nome" /><br />
  Apelidos: <input type="text" name="apelidos" id="apelidos" /><br />
  Correo: <input type="text" name="correo" id="correo" />

  <!-- Botóns: -->
  <p><input type="submit" value="Enviar" /><input type="reset" value="Borrar" /></p>
</form>

<!-- [...] -->

Restricións de escolla de opcións

editar

A continuación amósanse algunhas formas de evitar que se envíen os datos dun formulario sen antes escollerse unha opción:

<!-- [...] -->

<script type="text/javascript" language="javascript">
  function VerificarOFormulario(formulario)
  {
    // Función para asegurarse de que se seleccionase un dos elementos dun grupo de botóns.
    function ComprobarQueHaiEscolla(botons)
    {
      for (i = 0; i < botons.length; i++)
      {
        if (botons[i].checked)
	 return (true);
      }
      return (false);
    }

    // Asegurarse de que o usuario contestou a pregunta sobre a forma de distribución.
    if (!ComprobarQueHaiEscolla(formulario.permiso))
    {
      alert("Debe escoller se permite ou non que contactemos con vostede posteriormente.");
      return (false);
    }

    // Asegurarse de que o usuario escolleu un número de usuarios.
    if (!ComprobarQueHaiEscolla(formulario.usuarios))
    {
      alert("Debe escoller unha das opcións sobre a cantidade de usuarios.");
      return (false);
    }

    // Comprobar que non se escollese o primeiro dos tipos de compañía (non conta como valor).
    if (formulario.tipo.options[0].selected)
    {
      alert("Debe escoller un tipo de compañía da lista.");
      formulario.tipo.focus();
      return (false);
    }

    return (true);
  }
</script>

<!-- [...] -->

<form name="formulario" onsubmit="return VerificarOFormulario(formulario)" action="guión.py" method="post" >

  <!-- Solicitude de permiso para contacto posterior sobre novos produtos. -->
  <p>Danos permiso para contactar con vostede no futuro para informarlle sobre novos produtos que
  poidan resultar do seu interese?<br />
  
    <input type="radio" name="permiso" value="1" />Dóuvolo</input>
    <input type="radio" name="permiso" value="0" />Non</input>

  </p>

  <!-- Solicitude do número de usuarios da rede. -->
  <p>Cantos usuarios ten a súa rede?

    <ul>
      <li><input type="radio" name="usuarios" value="1" />Entre 1 e 5 usuarios.</input></li>
      <li><input type="radio" name="usuarios" value="6" />Entre 6 e 10 usuarios.</input></li>
      <li><input type="radio" name="usuarios" value="11" />Entre 11 e 15 usuarios.</input></li>
      <li><input type="radio" name="usuarios" value="16" />Máis de 15 usuarios.</input></li>
    </ul>

  </p>

  <!-- Solicitude do tipo de compañía. -->
  <p>De que tipo é a súa compañía?<br />

    <select name="tipo">
      <option>(escolla unha opción)</option>
      <option value="software">Compañía de software</option>
      <option value="hardware">Compañía de hardware</option>
      <option value="ambos">Compañía de software e hardware</option>
    </select>

  </p>

  <!-- Botóns de envío ou restablecemento do formulario. -->
  <p>
    <input type="submit" value="Enviar" />
    <input type="reset" value="Borrar"/>
  </p>
</form>

<!-- [...] -->


JavaScript
Casos concretos de formularios